如何在套接字io中使用用户名获取用户ID

Faz*_*zil 5 java sockets android node.js socket.io

我正在使用套接字io进行聊天。我这边正在使用android。我想获取特定的ID。当我发送用户名时。我想显示用户ID。我已经使用了如下所示。

 const userId = user.userId;
 const user1 = usernames[userId];
 console.log("user1 :"+user1);
Run Code Online (Sandbox Code Playgroud)

但是它仅显示用户名如何显示用户ID或如何获取用户ID。请帮我?

vsr*_*293 7

socket.id 给出了 socket(client) 的唯一 id,你可以用多种方式存储它

  • 从客户端向服务器发送用户名和 socket.id

客户端:

var socket = io.connect();
data = {name: userName, userId: socket.id};
socket.emit('setSocketId', data);
Run Code Online (Sandbox Code Playgroud)

服务器端:

var userNames = {};
socket.on('setSocketId' function(data) {
    var userName = data.name;
    var userId = data.userId;
    userNames[userName] = userId;
});
Run Code Online (Sandbox Code Playgroud)
  • 当套接字连接时,您也可以在服务器端执行此操作,但是您必须为用户提供一些默认名称,然后向客户端发出默认名称

服务器端:

var userNames = {};
var getDefaultName = function(){
    var cnt = 0;
    for (user in names) {
        cnt+=1;
    }
    return 'User' + String(cnt);
};
io.sockets.on('connection', function(socket) {
    name = getDefaultName();
    userNames[name] = socket.id;
    data = {name: name};
    socket.emit('initName', data);
});
Run Code Online (Sandbox Code Playgroud)


str*_*ash 0

console.log("用户1:"+用户1+" id:"+用户Id);