Wicket Web套接字无法与多个浏览器窗口一起使用

时间:2017-01-16 14:29:28

标签: websocket wicket

我在Wicket中创建了一个Web-Socket应用程序,它有一个将消息推送到所有客户端的服务器。注册客户端(application,sessionId和Key(PageId))后,服务器会推送消息。到现在为止还挺好。但是如果我在同一客户端上有相同浏览器的多个浏览器窗口,则只有一个窗口接收该消息并对其进行处理。

所有浏览器窗口(同一浏览器)是否共享同一个sessionId?如果是的话,它们之间是否存在差异?

1 个答案:

答案 0 :(得分:0)

所有浏览器(来自同一供应商,例如Firefox)将共享相同的会话ID。但是如果页面ID不同,那么将会有单独的Web套接字注册,并且所有这些注册都将拥有自己的连接,即所有这些连接都能够发送/接收消息。

如果您需要在用户打开同一页面ID的第二个标签/窗口时通过Wicket通知,请在页面上使用org.apache.wicket.ajax.AjaxNewWindowNotifyingBehavior。很可能你会想要使用setResponsePage(page.getClass())来创建同一页面的新实例,并为它建立一个新的WebSocket连接。