2017-04-18 18 views
3

チャットアプリケーションにsocket ioを使用しています。私の側はアンドロイドを使用しています。私は特定のIDを取得したい。私はユーザー名を送信しています。私はユーザーIDを表示したい。私は以下のように使用しています。ソケットioのユーザー名を使用してユーザーIDを取得する方法

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

ソケット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); 
}); 
関連する問題