Node js连接两个套接字,以便检索将更容易

Node js connecting two socket so that retrieving would be easier

本文关键字:检索 更容易 套接字 两个 连接 js Node      更新时间:2023-09-26

目前我正在使用io。Emit,我将事件发送给所有连接的用户,在客户端,我检查我发出的用户id是否等于客户端的id,然后条件运行,我认为它使我的代码混乱,有点慢,我可以做什么,比如将它们连接在一个组中,所以当检索它们时,我对我来说会更容易。

//server side
var id = 1;
io.emit('check',id);
// on client side 
socket.on('check',function(data){
var current_user_login = //getting current user login id by php
if(data == current_user_login) { 
//run some code
}
});

如果你想把某些插座放在同一个房间,这样很容易一起向他们所有人广播。试试这个:

var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
  socket.join('group');
  socket.broadcast.to('group').emit('new member');
});

解决这个问题的更好的方法是在您想要发送数据的用户和该用户的套接字之间创建一个关联,这样您只能将.emit()发送到特定的套接字。这比发送给每个人都要有效得多,特别是当你有很多连接的套接字时。

你必须向我们解释更多关于你如何知道你想要发送给哪个套接字或用户的信息,以便我们帮助找出如何在你的服务器上进行关联。

插座。IO有"房间"的概念,它是一组套接字,使您可以轻松地将套接字放置在特定组中,然后广播到特定组的套接字。

或者,每个套接字都有一个id,每个套接字都可以访问第一次建立连接时存在的cookie,这两者有时都可以用来确定您想要发送给哪个用户。但是,你必须解释你是如何知道你想要发送给哪个用户的,以便我们帮助你了解如何将其编码到你的服务器