I'm trying to set socket parameter (nick) as follows
socket.on('something', function(who){
socket.nick = who;
//something
});
Following code returns undefined to the client, which is the issue here.
But when i do it like...
socket.on('something', function(who){
socket.nick = 'who';
//something
});
This returns 'who' to everyone, ofc.
Is there a way to get the upper code snippet working?
Sockets can't communicate JavaScript objects or anything that can't be stringified simply. If who
is an object as in {x: "monkey"}
, you probably want to use who.x
instead, which is a string:
socket.nick = who.x;
You could also stringify the object to JSON and then parse it on the client:
socket.nickJson = JSON.stringify(who);