2016-03-18 2 views
0

Я играю с проектом Wicketstuff Push. Или более точный таймер. И теперь я столкнулся с проблемой поддержки на задней панели.Служба Wicket Push не работает после возврата

Как вы можете видеть на странице usage, стандартным способом использования push-сервиса является установка push-узла внутри конструктора компонента.

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); 

Он прекрасно работает, пока вы не измените расположение окна в вашем браузере, чтобы какой-то другой URL, а затем нажмите кнопку назад. Wicket берет страницу со своей страницы и отображает ее. Конечно, конструктор вашего компонента не вызывается, потому что иерархия компонентов повторно используется. Но это означает, что служба push не знает о вашем компоненте, а нажатие больше не работает.

Есть ли лучший способ использования службы Push? Как решить эту проблему?

ответ

0

Если Wicketstuff Push имеет API, чтобы проверить, подключена ли текущая страница, вы можете переместить регистрационный код в методе onConfigure(). Он вызывается для каждой страницы.

Смежные вопросы