通过socket.io发射给特定的人

Emit to specific person by socket.io

本文关键字:socket io 发射 通过      更新时间:2023-09-26

我使用socket.io和passport.js来使用Steam帐户对用户进行身份验证。我想能够将数据发送到特定Steam的ID。我已经在使用了

io.use(function(socket, next) {
     session(socket.handshake, {}, next);
});

访问socket.io中passport的passport数据。我曾想过将活动套接字存储在数组中,然后只找到一个具有正确Steam ID的套接字。有更好的解决方案吗?

var steamUsers= {};
io.sockets.on("connection",function(socket){
   //from passport
   socket.steamid= steamid;
   //store socket for every user
   steamUsers[socket.steamid] = socket;
   //emit from their socket
   steamUsers[steamid].emit('private',{msg:"private message"});
});

你应该在快线内使用这个。在快线内获取数据和发射是很棘手的。按照此链接在快速路线内设置socket.io如何在快速路线中使用socket.io?