即使 websocket 连接处于活动状态,会话也会过期



我的要求如下:

  1. 使用应用程序登录。
  2. 成功登录时打开网络套接字连接
  3. 通过
  4. websocket双向交换数据,但没有通过HTTP直接通信

我已经在 web.xml 中配置了会话超时> 15 分钟。即使 websocket 连接是实时的,但会话也会终止。

Java websocket 规范中存在一个 Websocket 错误,因为 Websocket 消息握手不会更新访问时间。因此,如果我们在任何符合 Java 规范的服务器中指定过期策略,将不会更新 websocket 消息交换的访问时间。因此,建议设置更高的过期值或无限的会话过期时间。

引用:雄猫门票:https://issues.apache.org/bugzilla/show_bug.cgi?id=54738Java 规范票证:https://java.net/jira/browse/WEBSOCKET_SPEC-175

您必须找到一种方法来推动 Java 中的会话滑动过期。由于没有执行新的 HTTP 请求,因此如果您不对其进行任何操作,会话将过期。

尝试调用 setMaxInactiveInterval 与值每次通过 websocket 接收消息时,它可能会重置 tiemr。

干杯。

相关内容

  • 没有找到相关文章

最新更新