В python клиенте websocket, почему ping_interval должен быть больше, чем ping_timeout - PullRequest
1 голос
/ 16 января 2020

Я не понимаю, почему интервал проверки связи должен быть больше, чем время ожидания проверки связи. В коде веб-сокета, найденном здесь , он определяет

ping_interval: автоматически отправлять команду «ping» каждый указанный период (секунду), если установлено значение 0, не отправлять автоматически.

ping_timeout: время ожидания (секунда), если сообщение pong не получено.

, но код говорит:

if ping_timeout and ping_interval and ping_interval <= ping_timeout:
    raise WebSocketException("Ensure ping_interval > ping_timeout")

Если ping_interval больше ping_timeout не приведет ли это к постоянному соединению с тайм-аутом?

Предположим, что ping_interval больше ping_timeout, тогда, пока я получаю ответ от сервера в пределах ping_timeout, все в порядке. Однако почему необходимо , чтобы ping_interval было больше ping_timeout?

1 Ответ

1 голос
/ 16 января 2020

Я ожидаю, что это потому, что "ping" не должны быть отправлены до того, как предыдущий получил ответ или истекло время ожидания.

Например, вы отправляете ping в момент времени t и ждете t+ping_timeout за ответ. Если ping_interval <= ping_timeout, вам нужно будет отправить второй пинг на t+ping_interval до t+ping_timeout и параллельно управлять многими пингами.

...