2015-07-10 46 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');