IBM Websphere - Websockets (wss) - 连接到其他配置文件中的 Websocket 服务器

问题描述 投票:0回答:1

下午好, 我来这里请求支持是为了尝试理解我在应用程序中注意到的行为,但我无法解释发生这种情况的原因。

设置

我正在使用 Webshepere,版本 9.0.0.11,其中 spring mvc 应用程序在配置文件中通过 HTTPS 运行。这个应用程序在会话(HttpSession)中执行值的定义,以便稍后通过JSP,可以获取此数据以在浏览器中显示。 在客户端,通过js,通过WebSocket建立连接。 WebSocket 服务器位于另一个 WebShepere 配置文件中。

意外行为

每当Websocket连接成功时,所有会话数据都会被删除。仅保留连接成功后记录的数据。

附加数据

  • 如果 WebSocket 服务器安装在同一配置文件中,则报告的行为不再发生,并且应用程序按预期工作。
  • 如果应用程序使用 HTTP,则不会出现该行为。
  • 在 Wildfly 服务器上,即使使用 HTTPS,行为也符合预期,这意味着会话数据不会被删除。

默认配置

  • 申请地址:https://myappurl:9444/
  • webSocket 服务器地址:wss://myappurl:9450/websocket
javascript websocket https websphere
1个回答
0
投票

进行测试后发现,由于与 websocket 的连接是在同一域的另一个端口上进行的,因此正在执行 cookie 覆盖,从而消除了会话数据。

解决办法是,在websoket服务器所在的webshere的配置文件中,更改会话管理中cookie名称的参数化,从默认的(JSESSIONID)更改为(JSESSIONIDA)。

路径:应用程序服务器 > server1 > Web 容器 > 会话管理 > Cookies

© www.soinside.com 2019 - 2024. All rights reserved.