Нужна помощь в понимании того, где происходят отключения (SocketJS, Vertx) и как можно настроить тайм-ауты.
Я создаю SockJSServer вместе с созданием моста eventBus. Проблема в том, что я наблюдаю, что соединение WebSocket часто отключается. Глядя на кадры веб-сокета, я вижу пинги каждые 5 секунд и сердцебиение, которое я настроил каждые 1/2 секунды (что, кажется, вступает в силу). Однако если сердцебиение задерживается более чем на 5 секунд, разъединение сопровождается сообщением c[3000,'Уходи']. Как видно, это происходит, когда сервер занят (делает что-то еще в отдельном потоке).
Я просмотрел документацию Vertx, просмотрел код Vertx и нашел несколько параметров конфигурации (которые кажутся разными в разных версиях и документации).
.putNumber("ping_interval", 120000)
.putNumber("session_timeout", 1200000)
.putNumber("heartbeat_period",500)
Чтобы быть абсолютно уверенным, я пробовал разные конфигурации, которые, похоже, не оказали никакого влияния. В этот момент я думаю, что достиг мертвой стены и нуждаюсь в помощи.
Вертекс версии 2.1P3
Фрагмент сервера
final SockJSServer server = vertx.createSockJSServer(httpServer);
server.bridge(new JsonObject().putString("prefix", "/eventbus")
.putNumber("ping_interval", 120000)
.putNumber("session_timeout", 1200000)
.putNumber("heartbeat_period",500),
new JsonArray().addObject(new JsonObject()),
new JsonArray().addObject(new JsonObject()));
Код клиента:
var eventBus = new EventBus('//hostX:12001/eventbus');