Socket.io 1.0 - 事件到房间只有broadcastet,我想发给每个人(包括发件人)

Col*_*Muc 2 node.js socket.io

根据新的文档:

在广播或发行时,只需使用或在(它们是相同的):

io.to('some room').emit('some event');
Run Code Online (Sandbox Code Playgroud)

它的工作方式与预期类似

    socket.on('event', function (data) {
        //do some action
        socket.to('room').emit('response_event', data);
    });
Run Code Online (Sandbox Code Playgroud)

但我想把"某些事件"不仅发送给会议室的其他参与者,还发送给发送者本人.

根据以前的版本,我预计会有类似的行为

io.to('some room').broadcast('some event'); //to everyone else
io.to('some room').emit('some event'); //to everyone else and sending socket
Run Code Online (Sandbox Code Playgroud)

作为一种解决方法,我首先将事件发送到发送套接字,然后广播它.但这对我来说似乎很脏

socket.on('event', function (data) {
    //do some action
    socket.emit('response_event', data);
    socket.to('room').emit('response_event', data);
});
Run Code Online (Sandbox Code Playgroud)

你有什么建议吗?

Fer*_*265 6

socket.to('room').emit像前广播一样工作(发送给除发送者以外的所有人). io.sockets.to('room').emit向房间里的每个人发出的声音.

用于命名空间 io.of('/namespace').to('room').emit

资料来源:经过一段时间搜索文档后的个人经验.