【发布时间】:2011-12-02 16:49:06
【问题描述】:
我有两个单独的文件,一个是服务器端 JS。
另一种是动态生成的客户端PHP。
这两个文件可以通过 Socket.IO 成功地相互通信。
我知道我可以使用 .of() 来限制命名空间,但不能使用
处理动态创建的聊天室。
所以我决定两个都用
.of('/chat')
房间特色
.join('room name')
我可以找到服务器端示例,但找不到客户端示例。
下面是来自Socket.IO github的唯一给定的服务器端代码sn-p
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.join('justin bieber fans');
socket.broadcast.to('justin bieber fans').emit('new fan');
io.sockets.in('rammstein fans').emit('new non-fan');
});
1) 我无法理解以下部分。
socket.broadcast.to('justin bieber fans').emit('new fan');
io.sockets.in('rammstein fans').emit('new non-fan');
这两者有什么区别?
2) 为什么不使用
socket.to('room name').emit('event')
而不是
io.sockets.in('room name').emit('new non-fan');
3) 最后,我找到了一些使用的文档
.send()
而不是
.emit()
有点 .send() 对我不起作用,我想知道这两者之间的区别。
谢谢,对于关于 Socket.IO 的多个问题,我深表歉意。
【问题讨论】:
-
一个很好的问题,显示了 socket.io 文档的糟糕状态。