返回后 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()方法中。为每个页面呈现调用它。