需要一些帮助来了解断开连接发生的位置(SocketJS、Vertx)以及如何配置超时。
我正在创建SockJSServer以及创建 eventBus 桥。我观察到的问题是 WebSocket 连接频繁断开。查看 websocket 帧,我每 5 秒看到一次 ping 和每 1/2 秒配置的心跳(似乎生效)。但是,一旦心跳延迟更长的时间,那么 5 秒就会断开连接,消息 c[3000,'Go away'] 会出现。正如观察到的那样,当服务器很忙(在单独的线程上做其他事情)时会发生这种情况。
我搜索了 Vertx 文档并查看了 vertx 代码,发现配置参数很少(在版本和文档中似乎有所不同)。
.putNumber("ping_interval", 120000)
.putNumber("session_timeout", 1200000)
.putNumber("heartbeat_period",500)
可以肯定的是,我尝试了不同的配置,但似乎没有任何影响。在这一点上,我想我已经到了死墙,需要一些帮助。
Vertx 版本 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');