我想实现Socket.io
的Room
功能,我的配置是这样的:
io.on('connection', function (socket) {
socket.join('123');
//...
}
当我想发出一个事件时:
socket.in('123').emit('sendMessage', {items:values]});
但是每个人都收到了这个消息,除了这个消息的发送者。为什么?我必须为发件人emit()
一个单独的消息吗?
如果我使用socket.to('123')
而不是socket.in('123')
,我得到相同的结果,没有任何变化。我使用Socket.io
的官方文件:http://socket.io/docs/rooms-and-namespaces/
要将此发送给包括发送者在内的所有人,您需要使用以下语法:
io.sockets.in('123').emit('message', 'cool game');
请注意,这里使用的是全局 io,我认为您应该像这样包含它:
var io = require('socket.io');