2011-07-09 37 views
7

Tengo un servidor node.js en funcionamiento con express y estoy tratando de establecer una conexión websocket utilizando socket.io en el lado del servidor y Chrome 12 en el lado del cliente . Cuando intento conectarme, socket.io emite un mensaje de depuración que dice "destruir la actualización non-socket.io" y el código en mi controlador de conexión no se ejecuta. También en el lado del cliente, el readyState de mi socket es 2 (CLOSING).problema de websocket: no se puede conectar al servidor node.js

[editar] readyState del zócalo cambiado de 0 a 2

+0

¿Está utilizando socket.io.js en el cliente para conectarse al servidor? – pkyeck

+0

¿Puedes poner aquí tu fragmento de código (o un enlace a github)? –

+0

¿Qué versión de Node.js y socket.io estás usando? – apose

Respuesta

1

asegurarse de que está insertando el archivo de socket.io.js en su código de cliente y usarlo. Si intenta crear su propio websocket en el lado del cliente, probablemente tenga problemas.

hacer algo como esto para su servidor:

var app = require('express').createServer() 
    , io = require('socket.io').listen(app); 

app.listen(80); 

app.get('/', function (req, res) { 
    res.sendfile(__dirname + '/index.html'); 
}); 

io.sockets.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    console.log(data); 
    }); 
}); 

y algo como esto para el archivo HTML que está sirviendo:

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io.connect('http://localhost'); 
    socket.on('news', function (data) { 
    console.log(data); 
    socket.emit('my other event', { my: 'data' }); 
    }); 
</script> 

asegurarse de que está sirviendo /socket.io/socket.io.js de su servidor web dir . Entonces, todo lo que tiene que hacer es ver el registro de su consola en el entorno del Desarrollador del navegador web desde Opciones o con Firebug cuando vaya a la página.

+0

Cuando intento agregar socket.io.js a mi cliente, aparece un error que el cliente no puede encontrar "requiere". Miré el código socket.io.js y usa require, que pensé que era solo del lado del servidor (es decir, del nodo), no un JavaScript en el navegador soportado. ¿Hay alguna otra biblioteca que necesitemos incluir en el cliente que implemente un "requerimiento" del lado del cliente? ¿O me estoy perdiendo algo? – Elisabeth

+0

@Elisabeth debes hacer eso en una nueva pregunta. No utilizará require() en el cliente. En el cliente, usarás

Cuestiones relacionadas