2017-04-18 56 views
3

我正在使用套接字io作爲聊天應用程序。我的身邊正在使用android。我想獲得特定的ID。當我發送用戶名。我想顯示用戶標識。我使用下面顯示的。如何使用用戶名在套接字中獲取用戶ID io

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

但它只顯示用戶名如何顯示用戶ID或如何獲得用戶ID。請幫幫我?

回答

0

console.log(「user1:」+ user1 +「id:」+ userId);

+0

userId顯示用戶名稱。 – Fazil

+0

當你的「userId」是用戶名,那麼你想顯示什麼樣的ID?你有沒有看看底層數據庫來檢查是否有這樣的ID?什麼是數據庫和你用什麼持久層 – strash

+0

在socket io中,每個用戶都有一個唯一的。私人這個唯一的ID使用。我想要那個ID。 – Fazil

0

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