有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在socket io中使用用户名获取用户id

我正在使用socket io进行聊天应用。我这边用的是安卓。当我发送用户名时,我想获得特定的id。我想显示用户id。我使用了如下所示的

 const userId = user.userId;
 const user1 = usernames[userId];
 console.log("user1 :"+user1);

但它只显示用户名如何显示用户id或如何获取用户id。请帮助我


共 (2) 个答案

  1. # 1 楼答案

    安慰。日志(“user1:+user1+”id:+userId)

  2. # 2 楼答案

    插座。id为套接字(客户端)提供唯一的id,您可以通过多种方式存储它

    • 从客户端发出用户和套接字的名称。服务器id

    客户端:

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

    服务器端:

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

    服务器端:

    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);
    });