我正在使用 socket.io &amp ;;在android中开发一个聊天应用程序。 node.js 。每次进行新连接时,客户端的套接字ID 都会发生变化。因此,要向特定用户发送消息,我需要另一个强制选项,例如用户注册电子邮件或电话号码。我在 MySQL 数据库中保留电子邮件,套接字ID ,状态(在线/离线)以获取新客户端&当注册用户再次登录时,更新仅套接字ID 。
对于消息,我存储了所有消息&当他/她使用新的套接字ID登录时,将它们发送给收件人。
我的问题:
答案 0 :(得分:0)
我处理这个的方式是每次用户连接时,我将它们添加到对象并将其用户名保存为密钥,并将套接字本身保存为值。例如:
var connectedUsers = {};
io.on('connection', function(socket){
connectedUsers[username] = socket;
});
然后你总是可以抓住他们的套接字ID
var id = connectedUsers[username].id;