socket rooms example cookies node.js websocket

cookies - rooms - socket io server



¿Cómo enviar cookies cuando se conecta a socket.io a través de WebSockets? (1)

¿Hay alguna forma de pasar fácilmente una cookie de autenticación cuando se trata de una conexión de WebSocket a socket.io? Actualmente tengo que hacerlo por separado, así:

socket = new io.Socket(document.location.hostname); socket.addEvent("connect", function() { // Send PHP session ID, which will be used to authenticate var sessid = readCookie("PHPSESSID"); this.send("{''action'':''authenticate'',''sessionid'':''"+sessid+"''}"); });


Los WebSockets tienen soporte para las cookies, ya que están basadas en HTTP, pero una búsqueda rápida a través de la fuente de Socket.IO reveló que no hay soporte para esto.

Por lo tanto, usar cookies directamente no es una solución factible en este caso, ya que, dado que está utilizando Socket.IO, no se garantiza que los usuarios se conecten a través de un WebSocket.

En el caso de que una conexión use un socket de memoria flash, es muy difícil hacer que Flash envíe las cookies del navegador en lugar de su propio conjunto, por lo que incluso si enviara una cookie directamente, no se configuraría en el navegador en caso de una conexión. conexión zócalo del matraz.

Actualmente no hay soporte para esto integrado en Socket.IO, por lo que los sockets flash solo fallarán.

Puede leer sobre esto en este problema , y aquí hay una pregunta sobre el problema de la cookie flash .

La mejor solución aún es hacerlo parte de su propio protocolo.