Árvore de páginas

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.




  • Sem rótulos