I'm using socket.io v9 on node.js 0.8.8, with latest Chrome as client.
I'm seeing a really bizarre behavior, and it took me most of Indie Game Jam yesterday to narrow it down.
The problem happens in this part of server code:
this.msg('message', {message:'beta'});
this.msg('next_round', {players: this.make_player_list()});
this.msg('message', {message:'zeta'});
"this.msg" is a wrapper for looping through a list of sockets and calling socket.emit() on them.
There are messages being sent before and after this code as well.
On the client, I will see all messages up to and including the 'message'/'beta' message. The 'next_round' message, and any message after that on the same socket, will not be seen on the client.
Now, here's the weird thing: If I change the name of the message to 'nnnn_round' (and update the message handler hook-up on the client,) the 'nnnn_round' and all messages after that come through fine.
So, it seems as if a message named "next_round" will jam up the server-side machinations of socket.io. Note that the debug output on the node/socket side does NOT show the next_round message being written to the socket, but it does show the nnnn_round message being written to the socket.
Is there any documentation that could explain this behavior? I can't find anything on socket.io (which doesn't have much documentation anyway) and grepping for "next_round" in the socketio module source comes up emtpy.