如何从wicket中的会话发送活动?

时间:2016-10-31 17:45:39

标签: session wicket

我有一个AuthenticatedWebSession,用于存储房间和家庭信息。

  1. 组件向会话发送广度事件(RoomChangedEvent)
  2. 会话检索与Room相关的所有新数据并将其存储(到会话中)
  3. 之后所有页面和组件最终都会收到此事件,其中一些将更新其状态(基于新的会话数据)。
  4. 但是,在检索Room的信息时,会话发现Home也发生了变化,并决定发送HomeChangedEvent,以便其他组件更新其状态。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

只有将更新推送到浏览器时,其他页面的更新才有意义。否则,每个页面(或更好的基页)都可以检查其#onConfigure()中的会话中是否有新内容并相应地更新自己。

如果要立即更新所有页面(使用服务器推送),请查看Wicket Native WebSocket模块(https://ci.apache.org/projects/wicket/guide/7.x/guide/nativewebsockets.html)。通过使用WebSocketRegistry.Holder.get(application).getConnections(),您可以轻松获取已打开的WebSocket连接的所有活动页面。