Búsqueda de sitios web

javascript - ¿obteniendo el error "conexión websocket inválida" usando socket.io en una instancia EC2?


Tengo esta aplicación web escrita con express y socket.io usando node.js, la aplicación funciona maravillosamente en localhost, pero cuando la subo a mi servidor ec2, se conecta por unos 20 segundos y luego se desconecta, y luego se conecta de nuevo, etc...

dándome el error en la consola de node como

warn  - websocket connection invalid
info  - transport end

SERVIDOR

app = express()
server = http.createServer(app)
io = require('socket.io').listen(server)

CLIENTE

socket = io.connect()

Sé que el problema no está en mi código, porque probé completamente la aplicación web en localhost, así que el único problema es dónde se está ejecutando este código, que es mi instancia de EC2.

Respuesta #1

Podría haber muchas razones posibles por las que puedes obtener este error:

  1. Estás utilizando un navegador que soporta websockets de manera parcial o no los soporta. Puedes comprobar si tu navegador soporta websockets aquí.
  2. Usando un proxy que no soporta websocket. Si hay algún servidor (balanceador de carga) entre tu cliente y tu servidor node que no soporta websocket.
  3. Está utilizando la versión 0.9.1/0.9.1-1 de socket.io. Este comportamiento es un error reportado para esta versión. Por lo tanto, actualice a la última versión de socket.io que es 0.9.14.
  4. La conectividad del navegador está bloqueada/por el cortafuegos.
  5. Problema relacionado con el código.

Respuesta #2

Asegúrate de estar usando las últimas versiones de node, express y socket.io en tu EC2. Además, proporciona algunos datos sobre las versiones actualmente usadas tanto en tu máquina local como en la instancia de EC2.