Skip to main content

Изменить тайм-аут поддержания соединения

Задаёт, сколько секунд сервер ждёт ping_req, прежде чем закрыть соединение. По умолчанию — 300 секунд. Увеличьте тайм-аут, если клиент не может часто отправлять ping_req; уменьшите — если серверу нужно быстрее освобождать соединения пропавших клиентов.

Запрос и ответ: set_alive_timeout → alive_timeout_resp.
Доступ: токен любого уровня.

Текущая версия ONS

Сервер отвечает командой alive_timeout_resp, а не set_alive_timeout_resp, как указано в описании v0.17. В ответе есть поле status, но нет operation_id. При ошибке сервер не добавляет error_text.

Запрос​

Поля без пометки «обязательно» можно не передавать.

ПолеТипОписание
cmdstringset_alive_timeout
operation_idstringМожно передать, но в ответ сервер его не возвращает
timeoutuint16Тайм-аут в секундах, целое число от 1 до 65535. Без поля сервер ставит 300
{
"cmd": "set_alive_timeout",
"timeout": 600
}

Ответ​

ПолеТипОписание
cmdstringalive_timeout_resp
statusuint81 — тайм-аут изменён, 2 — ошибка
timeoutuint16Новый тайм-аут, секунды. Только при status = 1
error_codeuint8Только при ошибке, см. ниже
{
"cmd": "alive_timeout_resp",
"status": 1,
"timeout": 600
}

Ответ на неверное значение:

{
"cmd": "alive_timeout_resp",
"status": 2,
"error_code": 1
}

Ошибки​

error_codeerror_textЧто случилось
1—timeout — не целое число или вне диапазона 1–65535, например строка "600" или 600.5. Тайм-аут не изменился

Что важно знать​

  • Только для текущего соединения. Новое соединение снова начинает с 300 секунд — задавайте тайм-аут после каждого подключения.
  • Отсчёт не начинается заново. Тайм-аут отсчитывается от последнего ping_req или от подключения, а не от момента изменения. Если новый тайм-аут меньше уже прошедшего времени, соединение закроется на ближайшей проверке. Отправьте ping_req сразу после изменения.
  • Проверка — раз в 30 секунд. Соединение закрывается на первой проверке после истечения тайм-аута, то есть с задержкой до 30 секунд.

См. также​

  • ping_req — сбросить таймер соединения.
  • Подключение — как сервер следит за соединением.