【问题标题】:Users can see other users real time data who are connected to socket用户可以看到其他连接到socket的用户实时数据
【发布时间】:2019-05-30 13:25:44
【问题描述】:

下面的代码是在用户连接到套接字后显示下载批次的实时进度条,它会每5秒更新一次详细信息。问题是当两个用户连接到套接字时,用户可以在他们的帐户上看到彼此的批处理进度。

我尝试使用唯一的 socket.id 但它不起作用。

io.on("connection", socket => {
      socketUniqueID = socket.id;
      setInterval(
         () => getApiAndEmit(socket),
         5000
      );
      socket.on("disconnect", () => console.log("Client disconnected"));
});

const getApiAndEmit = socket => {
          try {
          socket.emit(socketID, {batchdata : fetchDetail(req.user.id)});
          } catch (error) {
            console.error(`Error: ${error}`);
          }
};

function fetchDetail(id){
         //CODE TO FETCH THE DETAILS FROM DATABASE
}

用户只能查看其批次的进度,而不能查看其他已登录的用户。

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    如果你想向特定的socketId发送私信,你应该使用io.to(SocketIdOfUser).emit('message','my message') 另外,您可以查看 Socket.Io emit-cheatsheet 以查看其他示例

    【讨论】:

      猜你喜欢
      • 2012-08-08
      • 2011-08-06
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      相关资源
      最近更新 更多