Изменить тайм-аут поддержания соединения
Задаёт, сколько секунд сервер ждёт 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.
Запрос
Поля без пометки «обязательно» можно не передавать.
| Поле | Тип | Описание |
|---|---|---|
cmd | string | set_alive_timeout |
operation_id | string | Можно передать, но в ответ сервер его не возвращает |
timeout | uint16 | Тайм-аут в секундах, целое число от 1 до 65535. Без поля сервер ставит 300 |
{
"cmd": "set_alive_timeout",
"timeout": 600
}
Ответ
| Поле | Тип | Описание |
|---|---|---|
cmd | string | alive_timeout_resp |
status | uint8 | 1 — тайм-аут изменён, 2 — ошибка |
timeout | uint16 | Новый тайм-аут, секунды. Только при status = 1 |
error_code | uint8 | Только при ошибке, см. ниже |
{
"cmd": "alive_timeout_resp",
"status": 1,
"timeout": 600
}
Ответ на неверное значение:
{
"cmd": "alive_timeout_resp",
"status": 2,
"error_code": 1
}
Ошибки
error_code | error_text | Что случилось |
|---|---|---|
| 1 | — | timeout — не целое число или вне диапазона 1–65535, например строка "600" или 600.5. Тайм-аут не изменился |
Что важно знать
- Только для текущего соединения. Новое соединение снова начинает с 300 секунд — задавайте тайм-аут после каждого подключения.
- Отсчёт не начинается заново. Тайм-аут отсчитывается от последнего
ping_reqили от подключения, а не от момента изменения. Если новый тайм-аут меньше уже прошедшего времени, соединение закроется на ближайшей проверке. Отправьтеping_reqсразу после изменения. - Проверка — раз в 30 секунд. Соединение закрывается на первой проверке после истечения тайм-аута, то есть с задержкой до 30 секунд.
См. также
ping_req— сбросить таймер соединения.- Подключение — как сервер следит за соединением.