gpt4 book ai didi

node.js + socket.io 从服务器广播,而不是从特定客户端广播?

转载 作者:IT老高 更新时间:2023-10-28 23:07:26 24 4
gpt4 key购买 nike

我正在使用 node.js + socket.io 构建一个简单的系统,例如实时新闻提要。

由于这是一个“只读”系统,客户端连接并接收数据,但客户端实际上从不发送自己的任何数据。服务器生成需要发送给所有客户端的消息,没有客户端生成任何消息;但我确实需要广播。

documentation for socket.io's broadcast (页尾)说

To broadcast, simply add a broadcast flag to emit and send method calls. Broadcasting means sending a message to everyone else except for the socket that starts it.

所以我目前捕获要连接的最新客户端,并将其放入一个变量中,然后 emit() 到该套接字 broadcast.emit() 到那个套接字,这样这个新的客户端就会得到新的数据所有其他的客户端。但感觉客户端在这里的角色只不过是我认为 socket.io 已经支持的解决方法。

有没有办法根据服务器发起的事件向所有客户端发送数据?

我目前的做法大致是:

var socket;

io.sockets.on("connection", function (s) {
socket = s;
});

/* bunch of real logic, yadda yadda ... */

myServerSideNewsFeed.onNewEntry(function (msg) {
socket.emit("msg", { "msg" : msg });
socket.broadcast.emit("msg", { "msg" : msg });
});

基本上导致数据需要发送到客户端的事件都是服务器端的,而不是客户端的。

最佳答案

为什么不像下面那样做呢?

io.sockets.emit('hello',{msg:'abc'});

关于node.js + socket.io 从服务器广播,而不是从特定客户端广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8588895/

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