向每个客户端广播的套接字IO及其套接字ID
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向每个客户端广播的套接字IO及其套接字ID相关的知识,希望对你有一定的参考价值。
我对socket.io感到满意。真的很棒。
我知道从服务器上,我可以:
响应socket
客户端:
socket.emit(event, data);
广播到其他客户:
socket.broadcast.emit(event, data);
不加区别地广播给所有客户:
io.emit(event, data);
但是我想做的是将客户端以emit
作为参数循环到每个客户端socket.id
:>
io.emitEach(socket => socket.emit(event, dataWichDependsOn(socket.id)));
我能做到这一点吗?
我尝试过:
io.of('/').clients((error, clients) => { if (error) throw error; return clients.forEach(clientId => { io.to(clientId).emit(event, dataWichDependsOn(clientId)); }) }
没有成功:(消息似乎没有
emit
。
我对socket.io感到满意。真的很棒我知道从服务器可以执行以下任一操作:响应套接字客户端:socket.emit(event,data);广播到其他客户端:socket ....
答案
Object.keys(io.sockets.sockets).forEach((clientId)=>{
io.to(clientId).emit(event, dataWichDependsOn(clientId))
})
以上是关于向每个客户端广播的套接字IO及其套接字ID的主要内容,如果未能解决你的问题,请参考以下文章
使用 socket.io 向特定客户端发送消息,同时套接字 id 快速变化