Javascript Socket.io,向您自己发送消息
Socket.io不显示通过ip发送的消息。 比如说Javascript Socket.io,向您自己发送消息,javascript,socket.io,Javascript,Socket.io,Socket.io不显示通过ip发送的消息。 比如说 var id = 333; socket.broadcast.to(id).emit('user', user); 它工作正常,但消息只在客户端#333,但用户比发送的消息,在消息客户端没有副本 我想用这种方法解决,但它不起作用 socket.broadcast.to(socket.id).emit('user', user); 为什么?如果没有更多的代码,很难说出您想要什么,但有一件事是确定的,为了向单个用户发送消息,您必须使用套接字对
var id = 333;
socket.broadcast.to(id).emit('user', user);
它工作正常,但消息只在客户端#333,但用户比发送的消息,在消息客户端没有副本
我想用这种方法解决,但它不起作用
socket.broadcast.to(socket.id).emit('user', user);
为什么?如果没有更多的代码,很难说出您想要什么,但有一件事是确定的,为了向单个用户发送消息,您必须使用
套接字对象并使用套接字。emit
据我所知,广播
仅用于告诉除你自己以外的所有人
在跟踪用户方面,我通常会做以下几点:
var userList = [];
io.on('connection', function (socket) {
socket.on('userData', function (userDetails) {
userDetails.socket = socket;
userList[userDetails.id] = userDetails
});
});
基本上,当用户连接到我的套接字并且该用户的页面已完全加载时,它会发送其id(或令牌,如果您愿意),然后我将该用户的套接字映射到列表中,以便如果我希望发送给该用户,我可以快速地再次提取它
例如:
user.id=33
连接到我们的服务器
一旦加载,用户将向我们的服务器发出userData
函数
然后将插座取出并放入第33行的列表中
需要时,我们可以使用以下代码获取用户的套接字
:
socket = userList[33];
或者如果我们有目标:
socket = userList[user.id];
我希望这对您有所帮助。如果没有更多的代码,很难说出您想要什么,但有一点是肯定的,为了向单个用户发送消息,您必须使用套接字对象并使用套接字。emit
据我所知,广播
仅用于告诉除你自己以外的所有人
在跟踪用户方面,我通常会做以下几点:
var userList = [];
io.on('connection', function (socket) {
socket.on('userData', function (userDetails) {
userDetails.socket = socket;
userList[userDetails.id] = userDetails
});
});
基本上,当用户连接到我的套接字并且该用户的页面已完全加载时,它会发送其id(或令牌,如果您愿意),然后我将该用户的套接字映射到列表中,以便如果我希望发送给该用户,我可以快速地再次提取它
例如:
user.id=33
连接到我们的服务器
一旦加载,用户将向我们的服务器发出userData
函数
然后将插座取出并放入第33行的列表中
需要时,我们可以使用以下代码获取用户的套接字
:
socket = userList[33];
或者如果我们有目标:
socket = userList[user.id];
我希望这对您有所帮助。为此,您可以使用socket.emit('message')
socket.emit:
emit仅用于一个套接字
希望这对你有帮助。您也可以查看此链接:为此,您可以使用socket.emit('message')
socket.emit:
emit仅用于一个套接字
希望这对你有帮助。您也可以查看此链接:我不太明白您在这里试图实现的目标socket.id
是当前用户的套接字id(无waaayyy)。你能详细说明一下这个问题吗?@SterlingArcher我所有的用户都是通过socket.id标识的,但消息只针对收件人,而不是发件人。我不明白。。。你希望发生什么?请添加一些您希望发生的事情的输入和输出示例。@Mathias socket.id=单击用户消息后,发件人id会直接发送给他,就像在Facebook上一样。问题是邮件已到达收件人,但未显示在“发件人”窗口中。因此,希望将消息传递给socket.id,它是发送方的标识符。Socket.io不向套接字传输消息。id@Emerceen您可以考虑为用户腾出一个房间,并使用“IO。Sosik.in(房间)。EIT”,这将发送到包括SeDeReI在内的所有房间中,而不是完全遵循您在这里所要完成的任务。code>socket.id
是当前用户的套接字id(无waaayyy)。你能详细说明一下这个问题吗?@SterlingArcher我所有的用户都是通过socket.id标识的,但消息只针对收件人,而不是发件人。我不明白。。。你希望发生什么?请添加一些您希望发生的事情的输入和输出示例。@Mathias socket.id=单击用户消息后,发件人id会直接发送给他,就像在Facebook上一样。问题是邮件已到达收件人,但未显示在“发件人”窗口中。因此,希望将消息传递给socket.id,它是发送方的标识符。Socket.io不向套接字传输消息。id@Emerceen您可以考虑为用户腾出一个房间,并使用“IO .Sosik.in(房间).EIT”,这将发送到包括发送者在内的所有房间。