gpt4 book ai didi

javascript - Socket.io broadcast.to 不工作但 broadcast.emit 不工作

转载 作者:行者123 更新时间:2023-11-30 17:36:19 27 4
gpt4 key购买 nike

我正在尝试通过聊天室让聊天应用程序运行。

在服务器端我有类似的东西:

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.: 误认为我必须执行 socket.room = 'room'。它实际上是 socket.join('room');

最佳答案

socket.join('一般');而不是 socket.room 修复了它。

关于javascript - Socket.io broadcast.to 不工作但 broadcast.emit 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21973561/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com