Offline behavior
Buffered events#
By default, any event emitted while the Socket is not connected will be buffered until reconnection.
While useful in most cases (when the reconnection delay is short), it could result in a huge spike of events when the connection is restored.
There are several solutions to prevent this behavior, depending on your use case:
- use the connected attribute of the Socket instance
if (socket.connected) { socket.emit( /* ... */ );} else { // ...}- use volatile events
socket.volatile.emit( /* ... */ );- empty the internal buffer upon reconnection
socket.on("connect", () => { socket.sendBuffer = [];});