Para publicar un WebSocket, al igual que con el resto de las Apps de Node.js deberás configurar su publicación a Internet mediante reglas de .htaccess del servidor web de tu hosting, las que harán de "proxy" desde Internet hacia a tu app.
Configurar tu WebSocket en un subdirectorio
Agrega el siguiente código en el archivo .htaccess de tu carpeta raíz web:
DirectoryIndex ""
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/app [NC]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:3110%{REQUEST_URI} [P,QSA,L]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:3110%{REQUEST_URI} [P,QSA,L]
En este ejemplo, tu aplicación Node.js de Websockets escucha en el puerto 3110 y responderá sus peticiones en ws://dominio.com/app y wss://dominio.com/app
Si al correr la aplicación recibes un error "EADDRINUSE :::", intenta con otro puerto dentro de esos parámetros.
También deberás modificar el path "/app" con el path de tu aplicación que usa Websockets.
Configurar tu WebSocket en un subdominio
En el caso que tu App de Node.js escuche peticiones en el dominio raíz (es decir, no puedas escuchar en un subdirectorio "/app"), te recomendamos aislarlo en un subdominio de la siguiente manera:
- Crea un subdominio en cPanel.
- Dentro de la carpeta raíz del subdominio, crea o edita el archivo .htaccess con este código
DirectoryIndex ""
RewriteEngine On
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:3110%{REQUEST_URI} [P,QSA,L]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:3110%{REQUEST_URI} [P,QSA,L]
En este ejemplo, tu aplicación Node.js de Websockets escucha en el puerto 3110 y responderá sus peticiones en ws://subdominio.dominio.com/app y wss://subdominio.dominio.com/app
Recuerda que para acceder vía "wss" (WebSocket Seguro) deberás tener tu certificado SSL generado y activo en tu cuenta.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.