【发布时间】:2015-06-21 03:51:23
【问题描述】:
我有一个 javascript 客户端,它通过 websockets 连接到服务器并通过 ajax 将数据发送到服务器。 服务器完成数据处理后,我想通过 websocket 向客户端发送一条消息。 问题是:如何从 REST bean 中找到 WebSocket(希望在同一个会话中......)
【问题讨论】:
我有一个 javascript 客户端,它通过 websockets 连接到服务器并通过 ajax 将数据发送到服务器。 服务器完成数据处理后,我想通过 websocket 向客户端发送一条消息。 问题是:如何从 REST bean 中找到 WebSocket(希望在同一个会话中......)
【问题讨论】:
Websocket 连接以 HTTP 握手开始。在握手时,您还会收到 cookie(例如会话 ID cookie),因此您可以访问 HTTP 会话。
From the JSR 356 Java API for WebSocket spec:
因为 websocket 连接是通过 http 请求启动的,所以在客户端运行的 HttpSession 与在该 HttpSession 中建立的任何 websocket 之间存在关联。 API 允许在打开握手时访问与同一客户端对应的唯一 HttpSession。
这就是以任何您认为合适的方式将 HTTP 会话与 websocket 连接相关联的关键。
【讨论】: