A partir da versão 20.3.0.0 a comunicação entre o e o TOTVS | Broker pode utilizar o protocolo WebSocket.
Isto possibilita utilizar o TOTVS | Broker mesmo em cenários onde o único ponto de entrada para a rede corporativa do cliente é um web server utilizado como proxy reverso, já que os web servers líderes de mercado (Apache, Nginx, etc) também possibilitam a utilização do protocolo WebSocket na comunicação com os clients.
Existem 2 configurações a serem feitas para a utilização de TOTVS | Broker com WebSocket. A seguir detalharemos isto.
Cenário A
Neste cenário os se comunicam com o TOTVS | Broker diretamente, sem nenhum intermediário (com exceção de eventuais firewalls de segurança), através de uma porta TCP não padronizada.
Configuração no TOTVS | Broker | Configuração do |
---|---|
Recomendação de leitura: Porta Multiprotocolo (arquivo appserver.ini ou equivalente) [BALANCE_SMART_CLIENT_DESKTOP] ; porta onde o broker aceita conexoes LOCAL_SERVER_PORT = 10000 ; hosts e portas dos appservers que vao ser balanceados ; neste exemplo o broker e os appservers estao na mesma maquina (física ou VM) ; esta e' uma configuracao comum, mas nao e' obrigatoria: ; tanto o broker quanto os appservers podem estar em máquinas diferentes e em reded diferentes REMOTE_SERVER_01 = 127.0.0.1 10001 REMOTE_SERVER_02 = 127.0.0.1 10002 REMOTE_SERVER_03 = 127.0.0.1 10003 ; etc ; chave que habilita websocket no broker CLIENT_IS_WEBSOCKET=1 ; chave que permite utilização de clients que não utilizam Websocket ; por exemplo, Smartclient HTML, Smartclient Electron, e mesmo Smartclient desktop ; que nao esteja configurado para uso com broker ; IMPORTANTE: neste caso, as portas dos appservers especificadas acima (10001, 10002, 10003) ; devem ser uma "porta multiprotocolo" ; ; esta chave nao e' obrigatoria, mas se nao estiver habilitada entao apenas Smartclients ; que estejam configurados para utilizar Broker com Websocket irao conseguir se comunicar com este broker ALLOW_ANY_CLIENT = 1 | (arquivo smartclient.ini) . . . [broker-ws] Server = http://broker.minha_empresa.com.br:10000 BrokerProxy = 1 . . . Notar que a especificação do servidor (no caso é o broker) utiliza o esquema padrão "http://". |
Cenário B
Num cenário o ponto de entrada da rede corporativa normalmente utiliza um proxy reverso (Apache ou Nginx, por exemplo) para redirecionamento de serviços, balanceamento, etc.
Muitas vezes este próximo reverso também é um terminador SSL, isto é, as conexões externas chegam encriptadas, mas o proxy reverso retira a encriptação quando manda para o backend interno.
Neste cenário os se comunicam com o TOTVS | Broker através do proxy reverso, utilizando uma porta TCP padronizada: 80 para conexões não encriptadas, 443 para conexões encriptadas.
Observação: Isto não é obrigatório, mas é o caso mais comum.
Na configuração do proxy reverso deverão estar as regras que vão tratar as conexões originadas do apontando para o host virtual "broker_nginx" (ver smartclient.ini exemplo abaixo), e fazer o redirecionamento dessas conexões para o TOTVS | Broker que está no backend.
Essas regras também deverão configurar o terminador SSL, para que as conexões cheguem não encriptadas no TOTVS | Broker.
Configuração no TOTVS | Broker | Configuração do |
---|---|
(arquivo appserver.ini ou equivalente) [BALANCE_SMART_CLIENT_DESKTOP] ; porta onde o broker aceita conexoes LOCAL_SERVER_PORT = 10000 ; hosts e portas dos appservers que vao ser balanceados ; neste exemplo o broker e os appservers estao na mesma maquina (física ou VM) ; esta e' uma configuracao comum, mas nao e' obrigatoria: ; tanto o broker quanto os appservers podem estar em máquinas diferentes e em reded diferentes REMOTE_SERVER_01 = 127.0.0.1 10001 REMOTE_SERVER_02 = 127.0.0.1 10002 REMOTE_SERVER_03 = 127.0.0.1 10003 ; etc ; chave que habilita websocket no broker CLIENT_IS_WEBSOCKET=1 ; chave que permite utilização de clients que não utilizam Websocket ; por exemplo, Smartclient HTML, Smartclient Electron, e mesmo Smartclient desktop ; que nao esteja configurado para uso com broker ; IMPORTANTE: neste caso, as portas dos appservers especificadas acima (10001, 10002, 10003) ; devem ser uma "porta multiprotocolo" (ver link https://tdn.totvs.com/display/tec/Application+Server+-+Porta+Multiprotocolo) ; ; esta chave nao e' obrigatoria, mas se nao estiver habilitada entao apenas Smartclients ; que estejam configurados para utilizar Broker com Websocket irao conseguir se comunicar com este broker ALLOW_ANY_CLIENT = 1 Notar que a configuração do broker é essencialmente a mesma do "cenário básico". | (arquivo smartclient.ini) . . . [broker-ws] Server = https://broker_nginx.minha_empresa.com.br BrokerProxy = 1 . . Notar que a especificação do servidor agora aponta para o proxy reverso que está na entrada da rede corporativa, e utiliza o esquema padrão "https://" que indica que a conexão é encriptada. |