我已经使用express启动并运行了一个node.js服务器,并且我正在尝试使用socket.io服务器端和Chrome12客户端建立一个websocket连接。当我尝试连接时,socket.io输出一条调试消息,说“正在销毁非套接字.IO升级”,并且我的连接处理程序中的代码没有运行。同样在客户端,我的套接字的readyState是2(关闭)。
编辑套接字的readyState从0更改为2
发布于 2011-10-08 01:24:20
确保将socket.io.js文件插入到客户机代码中并使用它。如果你试图在客户端创建你自己的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>
确保你从你的dir服务器目录提供/socket.io/socket.io.js
服务。然后,当您转到页面时,您所要做的就是从选项或使用Firebug查看您的控制台在web浏览器的开发环境中的登录。
https://stackoverflow.com/questions/6634940
复制