我正在玩Wicketstuff Push项目。或推送计时器更具体。现在我面临着后退按钮支持的问题。
正如您在usage页面上看到的,使用推送服务的标准方法是在组件的构造函数中安装推送节点。
public CustomPanel() {
// setup UI components ...
IPushService pushService = TimerPushService.get();
IPushNode<Message> pushNode = pushService.installNode(this, handler);
pushService.connectToChannel(pushNode, channel);
}
然后您可以将消息推送到频道
IPushService pushService = TimerPushService.get();
pushService.publish(channel, message);
在您将浏览器中的窗口位置更改为其他网址然后按后退按钮之前,它会完美运行。 Wicket从页面地图中获取页面并呈现它。当然,不会调用组件的构造函数,因为组件层次结构是重用的。但这意味着推送服务不了解您的组件,推送不再起作用。
有没有更好的方法如何使用Push服务?如何解决这个问题?
答案 0 :(得分:0)
如果Wicketstuff Push有API来检查当前页面是否已连接,那么您可以在onConfigure()方法中移动注册码。每个页面渲染都会调用它。