没有更多的代码很难说你想要什么,但有一点是肯定的,以将消息发送给单个用户必须使用socket
对象,并使用socket.emit
据我所知broadcast
只用来告诉所有人,除了你自己。
,当涉及到跟踪用户的我最常做的是,我有以下几点:当用户连接到我的插座和完全地安装在用户的页面发送其ID
var userList = [];
io.on('connection', function (socket) {
socket.on('userData', function (userDetails) {
userDetails.socket = socket;
userList[userDetails.id] = userDetails
});
});
Basicly (或者如果你愿意,可以使用一个令牌),然后将用户的socket
映射到列表中,以便我可以在需要发送给该用户时再次快速提取它。
一个例子可以是:
user.id = 33
连接到我们的服务器
一旦加载用户发出到我们的服务器userData
功能
插座,然后取出并放入列表中行33
当我们需要我们可以使用下面的代码来获取用户socket
:
socket = userList[33];
,或者如果我们有对象:
socket = userList[user.id];
我希望这可以帮助你。
我并不完全遵循你要在这里完成的任务。 'socket.id'是当前用户的套接字标识(不是waaayyy)。你能详细说明这个问题吗? –
@SterlingArcher我的所有用户都由socket.id标识,但消息仅适用于收件人,而不是发件人。 – Emerceen
我不明白...你想要发生什么?请添加一些您希望发生的输入和输出示例。 –