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