Javascript 节点js连接两个套接字,以便更容易检索
目前我正在使用io.emit,我将事件发送给所有连接的用户,在客户端,我检查我发出的用户id是否等于客户端的id,然后条件运行,我认为这会使我的代码变得凌乱和有点慢。我可以做些什么,比如在一个组中连接,所以在检索它们时我会对我来说更容易Javascript 节点js连接两个套接字,以便更容易检索,javascript,node.js,sockets,websocket,socket.io,Javascript,Node.js,Sockets,Websocket,Socket.io,目前我正在使用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 = //get
//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,这两个cookie有时可以用来标识您要发送给哪个用户。但是,您必须解释如何知道要发送给哪个用户,以便我们帮助您了解如何将其编码到服务器中。类似于var id=1;io.emit('检查',id);其中,我将以下事件发送给id为1的用户,以便在客户端中id等于1的用户可以访问事件,因此我需要将事件发送给所有连接的客户端,并检查发射id是否等于登录的用户,然后执行一些操作stuffs@ujwaldhakal-但是,您如何知道要发送给哪个用户?你的用户有身份证吗?那在饼干里吗?你需要弄清楚如何为具有该id的用户找到特定的套接字。我不知道你的id值如何工作才能知道你将如何做到这一点。如何为用户分配id?否用户id值来自连接的套接字,如任何div或隐藏输入字段的参数etc@ujwaldhakal-什么是“来自连接的插座”的意思?抱歉,但是我很难理解id值来自何处,以及它如何与特定套接字关联。用户是如何分配id的?就像一个用户询问请求,然后接受请求一样,现在两个id都应该连接到套接字,以便进行进一步的事件