Регулировка тайм-аута соединения с метеором

Есть ли способ изменить время ожидания Meteor для разорванных соединений?

Вариант использования: у нас есть сервер, подключенный к нескольким клиентам. Как только соединение с клиентом прерывается, например, при отключении кабеля Ethernet, мы хотим отразить, что клиент отключился. Однако, поскольку время ожидания соединения составляет около 30 секунд, серверу требуется примерно столько же времени, чтобы заметить отключение и перевести клиента в автономный режим.

Вещи, которые мы пробовали: - Изменение частоты сердцебиения на клиентах, что работает для клиентов, так как они разрывают соединение раньше. Однако это не влияет на поведение на сервере, так как сервер по-прежнему ждет около 30 секунд, чтобы вызвать разрыв соединения.

  • Реализация нашего собственного метода сердцебиения с 3-секундным интервалом для обнаружения обрывов соединения. Однако это приводит к большому количеству дополнительного кода для чего-то, что я ожидаю настроить.

Я не смог найти что-либо в документации относительно уменьшения времени ожидания для соединений.


person Rob van Dijk    schedule 26.05.2017    source источник


Ответы (1)


Meteor использует SockJS в качестве своего веб-сервера.

Задержка отключения была установлена ​​на 60 секунд в первые дни Meteor из-за проблем с производительностью (пользователи отключались, если процессор был занят слишком долго), и ее нельзя настроить.

// The default disconnect_delay is 5 seconds, but if the server ends up CPU
// bound for that much time, SockJS might not notice that the user has
// reconnected because the timer (of disconnect_delay ms) can fire before
// SockJS processes the new connection. Eventually we'll fix this by not
// combining CPU-heavy processing with SockJS termination (eg a proxy which
// converts to Unix sockets) but for now, raise the delay.
disconnect_delay: 60 * 1000,

источник: пакет ddp-сервера Meteor

Вам, скорее всего, потребуется разветвить пакет ddp-server и переопределить его, если вы хотите, чтобы это изменилось быстро.

person MasterAM    schedule 26.05.2017