Cluster HyperServer Padrão
Em um cluster HyperServer padrão há apenas uma instância HyperServer com vários Nodes que fazem parte do cluster. Neste modo todas as requisições WebSocket serão atendidas pela própria instância HyperServer. Nodes não irão se conectar diretamente a clientes WebSocket. A instância HyperServer também funcionará como um servidor WebSockets.
Standalone Server and Windows Service
Neste modo a configuração é muito simples.
[hyper_server]
server_direct_url=http://localhost:8077Você deve fornecer um valor para o server_direct_url parâmetro. Essa URL será usada pelos Nodes para se conectar ao HyperServer e encaminhar as mensagens para ele. Quando BroadcastMessage método é chamado o Node relacionado deve enviar a mensagem para o HyperServer, para que o HyperServer possa transmiti-la para todos os clientes WebSocket. É por isso que os Nodes precisam saber em qual URL nosso HyperServer está localizado. Não há maneira de os Nodes encontrarem essa URL automaticamente, então ela deve ser fornecida preenchendo o server_direct_url parâmetro.
Para uma configuração HyperServer padrão em que ele aceita chamadas na porta 8077 esse valor pode ser:
http://localhost:8077
Você também pode usar uma URL global ou URL local para este parâmetro:
http://192.168.1.32:8077http://myserver.com:8077https://myserver.com:8077
Se você for fornecer uma URL segura, certifique-se de que as versões mais recentes dos arquivos DLL de SSL estejam copiadas para a pasta raiz do HyperServer.
A configuração de WebSockets pode ser deixada com os parâmetros padrão:
[websockets]
enabled=1
aux_port=0
max_queue_length=1000
binding=
global_binding=
global_port=0
external_server_url=
external_server_token=
app_domain=Não há necessidade de alterar quaisquer parâmetros no websockets trecho para o modo standalone/serviço do Windows — você pode deixá-los com os valores padrão.
ISAPI or Apache Module
Se você implantar seu HyperServer como um módulo (ISAPI ou Apache) as coisas podem ser mais complicadas. Nesse caso o módulo em si é incapaz de atender diretamente as requisições WebSocket — veja a seção IIS & Apache Deployment para detalhes: https://unigui.com/doc/online_help/iis--apache-deployment.htm. Você deve considerar Binding to a Different Port or IP Address: https://unigui.com/doc/online_help/binding-to-a-different-port-or.htm.
Aqui assumimos que você não está usando um Dedicated WebSockets Server: https://unigui.com/doc/online_help/using-a-dedicated-websockets-s.htm.
Ajuste server_direct_url para apontar para seu módulo/DLL:
Isto pode ser uma URL local ou global. Se os Nodes e a DLL do HyperServer forem executados no mesmo computador, é aceitável fornecer uma URL local desde que sua aplicação ISAPI esteja vinculada a localhost. Caso contrário forneça uma URL global como http://myserver.com/myapp/app.dll.
Usando uma Porta Auxiliar
Uma maneira de fornecer funcionalidade WebSocket para uma aplicação DLL ISAPI é servir as requisições WebSocket através de uma porta auxiliar. Exemplo: a aplicação web ISAPI usa conexões não seguras na porta 80, e você usa a porta 81 para requisições WebSocket.
Isto faz com que a DLL ISAPI execute internamente um servidor HTTP dedicado que escuta na porta 81 e é usado para aceitar e servir chamadas WebSocket.
Vinculando a um IP Diferente
Se você não quiser usar uma porta auxiliar você pode vincular o servidor WebSockets interno a um endereço IP diferente. Para fazer isso seu servidor deve ter mais de um endereço IP global. Por exemplo, se seu servidor tem dois IPs globais: 80.12.1.1 e 80.12.1.2, você pode configurar seu servidor ISAPI para vincular-se ao primeiro IP e configurar a DLL do HyperServer para usar o segundo IP usando o binding parâmetro:
Se sua aplicação usa uma conexão segura, conexões WebSocket devem ser feitas sobre wss. Você deve configurar seu ssl.cfg arquivo com as configurações corretas, e fornecer um domínio separado para seu domínio seguro se ele estiver vinculado a um IP secundário. Esses passos devem ser repetidos para cada instância HyperServer em sua rede. Se você tiver uma única instância HyperServer em sua rede pode ser razoável realizar essas configurações, mas à medida que você adiciona instâncias HyperServer a configuração deve ser repetida com portas ou endereços IP dedicados diferentes.
Por essas razões a documentação recomenda fortemente Using a Dedicated WebSockets Server, especialmente se você implantar sua aplicação ou HyperServer como um módulo ISAPI ou Apache: https://unigui.com/doc/online_help/using-a-dedicated-websockets-s.htm.