websocket问题:无法连接到node.js服务器

我已经得到了一个node.js服务器,运行express,我试图build立一个使用socket.io服务器端和chrome 12客户端的websocket连接。 当我尝试连接时,socket.io输出一条debugging消息,说“销毁nonsocket.io升级”,并在我的连接处理程序中的代码不运行。 同样在客户端,我的套接字的readyState是2(CLOSING)。

readyState的套接字从0更改为2

确保你将socket.io.js文件插入你的客户端代码并使用它。 如果您尝试在客户端创build自己的websocket,则可能会遇到问题。

为你的服务器做这样的事情:

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); }); }); 

和这样的HTML文件你正在服务:

 <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> 

确保你的webserver目录是/socket.io/socket.io.js 。 然后,只要进入该页面,就可以从“选项”或Firebug中观看您的控制台login到Web浏览器的开发环境。