As suggested by some of you, I did tests (using the developer console in
Google Chrome):
* (A) This works (i.e. server receives 'event'):
1. server up
2. `socket = io.connect(host); socket.emit('event');`
* (B) This works:
1. server up
2. `socket = io.connect(host);`
3. server down
4. `socket.emit('event');`
5. server up
* (C) This doesn't work:
1. server down
2. `socket = io.connect(host); socket.emit('event');`
3. server up
So, events do get queued, if:
* (A) a new connection is about to be created, or
* (B) a connection exists and the server is temporarily down.
Finally, concerning my question:
> Am I required to write code as below?
>
> socket = io.connect(host);
> socket.on('connect', function () {
> socket.emit('my event', {my: 'data'});
> });
Answer: No, I am not required to write code like that. Instead I can
write: