返回后 Wicket Push 服务不起作用
Wicket Push service doesn't work after back
我正在玩 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);
除非您将浏览器中的 window 位置更改为其他 url 然后按后退按钮,否则它会完美运行。 Wicket 从其页面映射中获取页面并呈现它。当然,你的组件的构造函数不会被调用,因为组件层次结构被重用了。但这意味着推送服务不知道您的组件并且推送不再起作用。
Push服务有没有更好的使用方法?如何解决这个问题?
如果Wicketstuff Push有API检测当前页面是否已连接,那么可以将注册码移到onConfigure()方法中。为每个页面呈现调用它。
我正在玩 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);
除非您将浏览器中的 window 位置更改为其他 url 然后按后退按钮,否则它会完美运行。 Wicket 从其页面映射中获取页面并呈现它。当然,你的组件的构造函数不会被调用,因为组件层次结构被重用了。但这意味着推送服务不知道您的组件并且推送不再起作用。
Push服务有没有更好的使用方法?如何解决这个问题?
如果Wicketstuff Push有API检测当前页面是否已连接,那么可以将注册码移到onConfigure()方法中。为每个页面呈现调用它。