Reputation: 155
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?
Upvotes: 1
Views: 111
Reputation: 191789
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);
Upvotes: 1
Reputation: 155
With the lightning fast aid of Explosion pills the problem got solved.
instead of...
socket.on('something', function(who){
socket.nick = who;
//something
});
it should be
socket.on('something', function(who){
socket.nick = who.x;
//something
});
Upvotes: 0