Пингующий клиент с сервером Websocket
У меня есть соединение Websocket с http-kit (Clojure, и оно прекрасно работает). Я отправляю пинг от клиента, чтобы убедиться, что мы все еще на связи, и там все отлично работает. Мой вопрос заключается в том, не мешают ли люди пинговать клиента с сервера в этих случаях?
Я пытался настроить что-то, чтобы удалить канал с сервера, если я не получил ответ, но это не очень удобно для настройки синхронизированных процессов и изменения состояния для отслеживания цикла пинг-понга, поэтому он получал немного некрасиво Тогда я подумал, что сервер может обрабатывать сотни тысяч одновременных соединений, не стоит ли мне беспокоиться о нескольких сломанных потоках? Как люди обычно справляются (или не справляются) с этим?
1 ответ
У самого протокола WebSocket бьется сердце, чтобы поддерживать соединение живым. Если вам нужен дополнительный слой поверх этого, вы можете использовать протокол STOMP, который координирует пульс между клиентом / сервером.
Я знаю одну реализацию STOMP для JVM - Stampy. Для JS тоже есть один, stompjs. Примечание: реализация heartbeat отличается между этими библиотеками, я считаю, что Stampy неправильный. Вы должны были бы катиться самостоятельно.