¡Hola Forastero!

Pareces nuevo por aquí. Si quieres participar, ¡pulsa uno de estos botones!

In this Discussion

www.kplian.com
Para solicitar una invitación remitir un correo a info@kplian.com (Esta es una medida para evitar ataques de SPAM)

Configurr WebSocket para https

Buenos dias compañeros PXP a continuación describo como configurar websocket para usar con SSL/TLS

1. Habilitar  modulos mod_proxy.so, mod_proxy_wstunnel.so en el archivo de configuración /etc/httpd/conf/httpd.conf

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

2. Agregar las siguientes lineas en el archivo /etc/httpd/conf.d/ssl.conf

2.1 Certificados para trabajar con https: Certificados AutoFirmados o de Terceros
 
SSLCertificateFile /etc/pki/tls/certs/certificado.crt
SSLCertificateKeyFile /etc/pki/tls/private/certificado.key

2.2 Websocket

ProxyPass /wss ws://erp.empresa.bo:8010 retry=0 keepalive=On
ProxyPassReverse /wss ws://erp.empresa.bo:8010 retry=0

3. Agregar las siguientes lineas en el archivo Phx.CP.js en el objeto webSocket->iniciarWebSocket()

var hostname = window.location.hostname;
var protocol = window.location.protocol;
var ws;
var folder;
if(protocol === 'http:'){
ws = 'ws';
folder= ''
}else{
ws = 'wss';
folder= '/wss/kerp';

}
Phx.CP.webSocket.conn = new WebSocket(ws+'://'+hostname+folder+':'+Phx.CP.config_ini.puerto_websocket+'?sessionIDPXP='+Ext.util.Cookies.get('PHPSESSID'));

Comentarios

  • Muchas Gracias
  • Haciendo pruebas se encontro que en el virtualhost se debe configurar lo siguiente:


        ProxyPass /wss ws://localhost:8010 retry=0 keepalive=On
        ProxyPassReverse /wss ws://localhost:8010 retry=0
        

    Donde lo que se le esta diciendo es q si llega una peticion por puerto 443 y tiene un folder /wss redireccionar al puerto local 8010 de websocket

    La peticion debe ser asi:

    wss://host:443/wss?sessionIDPXP=sessionid

    La carpeta wss es la clave

  • edited julio 2020
    tambien debemos tener en cuenta otro probema  que podria ocurrir, 
    ocurre cuando actualizas una pagina o una conexion varias veces.
    Sí, el cliente recibe 2 bytes que hacen referencia al marco del mensaje websocket.
    Podría decir que cuando un cliente se desconecta sin el protocolo predeterminado de cierre websockt, Ratchet mantiene la conexión "abierta", pero cuando un nuevo usuario se conecta, Ratchet reutiliza de alguna manera la última conexión "abierta" (cerrada) ...
    Debido a que el nuevo cliente utiliza una conexión "activa" anterior, cuando envía el protocolo de enlace HTTP, Ratchet se queja porque no es el marco de mensaje predeterminado.

    agregando en el virtual host  disablereuse=On podemos solucionar ese problema

       ProxyPass /wss ws://localhost:8010 retry=0 keepalive=On disablereuse=On
Sign In or Register to comment.