Im using the following code in index.js
io.on('connection', function(socket){ console.log('a user connected'); console.log(socket.id); });
the above code lets me print the socket.id in console.
But when i try to print the socket.id on client side using the following code
<script> var socket = io(); var id = socket.io.engine.id; document.write(id); </script>
it gives 'null' as output in the browser.
socket.id can be obtained after 'connect' event. Note, the socket.id on the server is not made available to the client, so if you want the id from the server, then you can send it to the client yourself in a message.
var socket = require('socket. io-client')('ws://ws.website.com/socket.io/?EIO=3&transport=websocket'); socket. on('connect', function() { console. log("Successfully connected!"); });
You can check the socket. connected property: var socket = io. connect(); console.
You should wait for the event connect
before accessing the id
field:
With this parameter, you will access the sessionID
socket.id
Edit with:
Client-side:
var socketConnection = io.connect(); socketConnection.on('connect', function() { const sessionID = socketConnection.socket.sessionid; // ... });
Server-side:
io.sockets.on('connect', function(socket) { const sessionID = socket.id; ... });
For Socket 2.0.4 users
Client Side
let socket = io.connect('http://localhost:<portNumber>'); console.log(socket.id); // undefined socket.on('connect', () => { console.log(socket.id); // an alphanumeric id... });
Server Side
const io = require('socket.io')().listen(portNumber); io.on('connection', function(socket){ console.log(socket.id); // same respective alphanumeric id... }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With