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

问题描述:

我正在使用套接字io作为聊天应用程序。我的身边正在使用android。我想获得特定的ID。当我发送用户名。我想显示用户标识。我使用下面显示的。如何使用用户名在套接字中获取用户ID io

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

但它只显示用户名如何显示用户ID或如何获得用户ID。请帮帮我?

console.log(“user1:”+ user1 +“id:”+ userId);

+0

userId显示用户名称。 – Fazil

+0

当你的“userId”是用户名,那么你想显示什么样的ID?你有没有看看底层数据库来检查是否有这样的ID?什么是数据库和你用什么持久层 – strash

+0

在socket io中,每个用户都有一个唯一的。私人这个唯一的ID使用。我想要那个ID。 – Fazil

socket.id给出的唯一ID的套接字(客户端),你可以将其存储在许多方面

  • 从客户端发出的用户名和socket.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); 
});