查找服务器是否已连接到客户端

时间:2019-01-21 05:12:08

标签: sockets socket.io

如果客户端试图连接到已经连接到另一个客户端的服务器,我想给出一条错误消息。我尝试了很多方法,但是我没有得到我真正想要的。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在您的服务器中,您需要跟踪已连接的客户端数量,并且每次新客户端尝试连接时,只需检查已连接的客户端数量,如果其不为0则发出带有错误消息的事件,并断开与客户端的连接服务器。 这是服务器代码,

db.collectionName.aggregate([
  {
    $unwind:{path:"$nodes"},
  },
  {
    $group:{
      _id:"$name",
      nodes:{
        $addToSet:"$nodes"
      }
  },
  {
    $project:{
      _id:0,
      name:"$_id.name",
      nodes:1
    }
  },
  {
    $out:"collectionNameWithoutDuplicates"
  }
])

在客户端,

var count = 0;
io.on('connection', function (socket) {
    if (count != 0) {
        socket.emit("error", "Cant Connect");
        socket.disconnect();
    }
    count++;
});

有关在socket.io上维护单个用户的更多信息,请参考https://hackernoon.com/enforcing-a-single-web-socket-connection-per-user-with-node-js-socket-io-and-redis-65f9eb57f66a