2015-07-10 100 views
1

我想要实现Socket.ioRoom功能和我的配置是这样的:发件人Socket.io消息不能得到的消息像其他用户

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/

+0

这里有一个[名单](http://stackoverflow.com/questions/10058226/send-response-to-all-clients-except-sender - socket-io)与不同的方法。尝试'io.sockets.in('123')。emit('sendMessage','your message');' – gastonmancini

回答

1

为了得到这个发送给每个人,包括你需要使用下面的语法发件人:

io.sockets.in('123').emit('message', 'cool game'); 

注意,这是使用全球 IO我会假设你会包括如下:

var io = require('socket.io');