Node.js 通过Socket.IO向所有关注者发送消息
我已经在我的Swift应用程序中实现了socket.io连接。我在后端运行node.js服务器。我现在可以向特定用户发送消息,如下所示:Node.js 通过Socket.IO向所有关注者发送消息,node.js,swift,socket.io,Node.js,Swift,Socket.io,我已经在我的Swift应用程序中实现了socket.io连接。我在后端运行node.js服务器。我现在可以向特定用户发送消息,如下所示: let connectedClients = new Map(); if(connectedClients.has("1")) { var socketInformation = connectedClients.get("1") // for userID 1 var socketID = socketInformation.client.i
let connectedClients = new Map();
if(connectedClients.has("1")) {
var socketInformation = connectedClients.get("1") // for userID 1
var socketID = socketInformation.client.id
io.sockets.connected[socketID].emit('message', req.query.message)
}
基本上,ConnectedClient持有键:值对,如userID:socketID
我接下来要做的是,当我发布更新时,将消息发送给我的所有追随者。因此,当我发布更新时,我会将其添加到我的MySQL数据库中,但对于在线用户,我希望将更新实时发送到他们的屏幕上。我该怎么办
我觉得我有三个选择:
- 我遍历所有连接的客户机,检查他们是否是我的追随者李>
- 我遍历我所有的追随者,检查他们是否在地图上李>
- 我为每个用户的所有追随者创建一个“房间”,并将消息发送到此房间
另外,我想知道我的map(connectedClients)是否是存储当前连接设备的好方法。您是否尝试过
io.sockets.emit(…)
?我的意思是:
const wsServer = require('socket.io');
let io = wsServer(webSocketsPort);
io.sockets.emit('your-event', () => 'hello, clients!');
这不会向所有连接的用户发出吗?我只想发送给特定数量的用户,即关注我帐户的用户(例如,可以将其视为我在Instagram上的追随者)。所以对于我从MySQL数据库中检索到的一群人,对不起,我知道你想发送给所有在线用户