问题 socket.io 不工作
详情
- 用
express [文件夹] 生成了一个项目; cd [文件夹]; npm 安装;
- 设置 socket.io
npm install socket.io
- 使用以下代码运行 Node 应用程序
- 客户端 connect 事件触发,但服务器 connection 从未触发。
设置
- 服务器 AWS 免费套餐、Ubuntu 11.10、ami-a7f539ce
- nodejs v0.6.5
- express v2.5.1
- socket.io v0.8.7
客户
var socket = io.connect('http://example.com:3000');
socket.on('connect', function() {
console.log('connected');
});
socket.on('message', function(msg){
console.log(msg);
});
socket.on('disconnect', function() {
console.log('disconnected');
});
socket.on('error', function (e) {
console.log('System', e ? e : 'A unknown error occurred');
});
服务器
[...]
app.listen(3000);
// socket.io setup
var socket = require('socket.io').listen(app);
// socket.io connection establishment
socket.on('connection', function (client) {
client.send("hello");
console.log("hello", client);
});
为什么 connection 事件从未触发?
最佳答案
花了一段时间才注意到... connection
事件在 io.sockets
上发出。在您的代码中,这将是
socket.sockets.on('connection', function (client) {
client.send("hello")
console.log("hello", client)
})
您应该使用 io
而不是 socket
作为 var 名称以避免这种混淆。
关于node.js - socket.on ('connection' ... 事件从未触发 nodejs + express + socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8424886/