1

对不起,但我有一个问题。我已经建立了一个社区。我希望在这个社区中实现 1:1 聊天。

如果用户在社区登录,他会在 login.php 文件中发起连接:

var socket = io.connect("http://localhost:8080"); 

现在的问题是:我可以用这条线发送用户 ID 吗?因为我想在聊天服务器上的 sql-DB 中存储一对数字:连接 ID 和社区成员的 ID。那是因为如果他的聊天伙伴已注销且无法访问,我必须在聊天中通知社区成员。

很感谢!!!对不起我的英语不好。

4

1 回答 1

0

在客户端,只需将用户 ID 作为查询字符串传递。

var socket = io.connect('http://localhost:8080?user=123');

在服务器上,您可能希望在处理程序中处理数据connection。为此,您必须添加一个authorization处理程序,并将数据保存到handshakeData对象中。然后,您可以访问它socket.handshake

io.set('authorization', function (handshakeData, callback)
{
    handshakeData.userId = handshakeData.query.user;
    callback(null, true);
});

io.sockets.on('connection', function(socket)
{
    console.log(socket.id, ' => ', socket.handshake.userId);
}
于 2013-10-15T07:54:44.420 回答