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 = [];
});