J'utilise le code suivant dans index.js
io.on('connection', function(socket){
console.log('a user connected');
console.log(socket.id);
});
le code ci-dessus me permet d'imprimer le socket.id dans la console.
Mais quand j'essaye d'imprimer le socket.id côté client en utilisant le code suivant
<script>
var socket = io();
var id = socket.io.engine.id;
document.write(id);
</script>
il donne 'null' en sortie dans le navigateur.
Vous devez attendre l'événement connect
avant d'accéder au champ id
:
Avec ce paramètre, vous accéderez au sessionID
socket.id
Editer avec:
Côté client:
var socket = io.connect();
socket.on('connect', function() {
var sessionid = socket.socket.sessionid; //
...
});
Du côté serveur:
io.sockets.on('connect', function(socket) {
var sessionid = socket.id;
...
});
Le code suivant donne socket.id côté client.
<script>
var socket = io();
socket.on('connect', function(){
var id = socket.io.engine.id;
alert(id);
})
</script>
Pour les utilisateurs de Socket 2.0.4
Côté client
let socket = io.connect('http://localhost:<portNumber>');
console.log(socket.id); // undefined
socket.on('connect', () => {
console.log(socket.id); // an alphanumeric id...
});
Du côté serveur
const io = require('socket.io')().listen(portNumber);
io.on('connection', function(socket){
console.log(socket.id); // same respective alphanumeric id...
}
Pour obtenir l'ID de socket côté client pour Latest socket.io 2.0, utilisez le code ci-dessous
let socket = io();
//on connect Event
socket.on('connect', () => {
//get the id from socket
console.log(socket.id);
});