2017-05-30 9 views
3

イムクライアント側の接続のsocket.idを取得する方法は?

io.on('connection', function(socket){ 
console.log('a user connected'); 
console.log(socket.id); 
}); 

index.jsに次のコードを使用して、上記のコードは私がコンソールにsocket.idを印刷することができます。

しかし、私は次のコード

<script> 
var socket = io(); 
var id = socket.io.engine.id; 
document.write(id); 
</script> 

を使用してクライアント側でsocket.idを印刷しようとすると、それがブラウザに出力として「ヌル」を提供します。あなたはidフィールドにアクセスする前にイベントconnectを待つべき

+1

** [ドキュメント]を何(HTTPS ://ソケット.io/docs/client-api /#socket)**ソケットIDを取得する方法について教えてください。あなたは何か試しましたか? –

+1

ありがとう@ Mr.Meeseeks docsで見つけました。 socket.idは 'connect'イベントの後に取得できます。 –

+0

サーバ上の 'socket.id'はクライアントから利用できないので、サーバからのIDを必要とするならば、それをあなた自身のメッセージに送ることができます。 – jfriend00

答えて

8

:このパラメータを

を、あなたは、セッションID

socket.id 

にアクセスすると編集:

クライアント側:

var socket = io.connect(); 
socket.on('connect', function() { 
    var sessionid = socket.socket.sessionid; // 
    ... 
}); 

サーバー側:

io.sockets.on('connect', function(socket) { 
    var sessionid = socket.id; 
    ... 
}); 
1

次のコードは、クライアント側でsocket.idできます。

<script> 
    var socket = io(); 
    socket.on('connect', function(){ 
var id = socket.io.engine.id; 
    alert(id); 
}) 
</script> 
0

2.0.4ユーザー

ソケットのクライアント側

let socket = io.connect('http://localhost:<portNumber>'); 
console.log(socket.id); // undefined 
socket.on('connect',() => { 
    console.log(socket.id); // an alphanumeric id... 
}); 

サーバー側

const io = require('socket.io')().listen(portNumber); 
io.on('connection', function(socket){ 
    console.log(socket.id); // same respective alphanumeric id... 
} 
関連する問題