Implantação IIS & Apache

Se você optar por implantar sua aplicação como um módulo, há considerações especiais que devem ser levadas em conta. Independentemente do tipo do seu módulo — seja um módulo ISAPI ou um módulo Apache nativo — os mesmos passos devem ser seguidos.

Quando você implanta sua aplicação como um módulo, o uniGUI não ativará seu servidor HTTP interno. Todas as requisições web serão tratadas pelo servidor web externo (Apache, IIS ou qualquer outro servidor web compatível). Isso significa que o uniGUI não pode atender requisições WebSocket na mesma porta/endereço usado pelo servidor web externo. Há duas maneiras de contornar esse problema:

1

Use a API específica de WebSockets disponível para o servidor web externo em questão

Cada servidor web pode fornecer sua própria API de WebSockets. Essa abordagem requer o uso da API específica desse servidor web externo.

2

Atenda requisições WebSocket em uma porta e/ou endereço IP diferente

Execute um servidor HTTP separado para requisições WebSocket em uma porta de serviço auxiliar, em um endereço IP adicional ou em ambos. O uniGUI prefere esse método por várias razões:

  • Cada servidor web usa sua API específica de WebSockets. Não existe uma API padrão ou comum para todos os servidores web suportados.

  • No Microsoft IIS a API de WebSockets está disponível para aplicações .NET, mas para módulos ISAPI nativos não há uma API documentada pela Microsoft.

  • Alguns servidores web usam regras de reescrita e técnicas de proxy em vez de fornecer uma API de WebSockets.

  • APIs podem mudar entre edições ou versões do servidor web.

Considerando o exposto acima, a única maneira confiável de implementar WebSockets para um servidor web externo é usar um servidor HTTP separado para requisições WebSocket. Além disso, se seu servidor web específico preferir proxyar requisições WebSocket para outro servidor, é obrigatório implementar um servidor HTTP diferente para as requisições WebSocket.

Para detalhes, veja: Vinculação a uma Porta ou Endereço IP Diferentearrow-up-right.