1
我試圖通過房間使聊天應用程序工作。Socket.io broadcast.to不工作,但broadcast.emit確實
在服務器端,我有這樣的:
io.sockets.on('connection', function (socket) {
socket.emit('connection', { userId: socket.id});
socket.room = 'General';
console.log(socket.room);
socket.on('sendMessage', function (data) {
console.log(data.room);
// socket.broadcast.emit('receiveMessage', { data: data });
socket.broadcast.to(data.room).emit('receiveMessage', { data: data });
});
socket.on('disconnect', function() {
console.log("DISCONNECT");
socket.emit('disconnect');
});
});
客戶端:
var room = 'General';
var message = 'test';
socket.emit('sendMessage', { room : room, message: message });
socket.on('receiveMessage', function (data) {
console.log(data);
});
當使用socket.broadcast.emit,我看到在客戶端的控制檯日誌的所有連接的用戶。當使用socket.broadcast.to(data.room)時,我看不到控制檯日誌。
連接時,所有客戶端的房間設置爲「常規」。
想法?
Ps .:認爲我不得不做012KB。它實際上是socket.join('room');