Выключение поведения при отсутствии соединения
Буферизованные события
По умолчанию любое событие, испущенное, когда сокет не подключен, будет буферизовано до повторного подключения.
Хотя это полезно в большинстве случаев (когда задержка повторного подключения короткая), это может привести к большому всплеску событий при восстановлении подключения.
Существует несколько решений для предотвращения этого поведения, в зависимости от вашего случая использования:
- используйте атрибут connected экземпляра сокета
if (socket.connected) {
socket.emit( /* ... */ );
} else {
// ...
} |
- используйте летучие события
socket.volatile.emit( /* ... */ ); |
- опустошите внутренний буфер при повторном подключении
socket.on("connect", () => {
socket.sendBuffer = [];
}); |
© 2014–2021 Automattic
Licensed under the MIT License.
https://socket.io/docs/v3/client-offline-behavior