2016-10-31 4 views
0

방 및 집 정보를 저장하는 AuthenticatedWebSession이 있습니다.wicket에서 세션의 일정을 보내려면 어떻게해야합니까?

  1. 구성 요소는 세션에 폭 넓은 이벤트를 송신 (RoomChangedEvent)
  2. 세션 룸에 관련된 모든 새로운 데이터를 검색하고이 이벤트를받을 결국 (세션에)
  3. 모든 페이지 및 구성 요소를 보관 그 중 일부는 새 세션 데이터를 기반으로하여 상태를 업데이트합니다.

그러나 방의 정보를 검색하는 동안 세션은 홈이 변경되었음을 발견하고 HomeChangedEvent를 보내기로 결정하므로 다른 구성 요소가 상태를 업데이트합니다. 내가 어떻게 할 수 있니?

답변

1

다른 페이지의 업데이트는 브라우저로 업데이트를 푸시해야만 유효합니다. 그렇지 않으면 모든 페이지 (또는 더 나은 기본 페이지)가 #onConfigure()에 세션에 새로운 내용이 있는지 여부를 확인하고 이에 따라 자체를 업데이트 할 수 있습니다.

즉시 (서버 푸시로) 모든 페이지를 업데이트하려면 Wicket Native WebSocket 모듈 (https://ci.apache.org/projects/wicket/guide/7.x/guide/nativewebsockets.html)을 살펴보십시오. WebSocketRegistry.Holder.get (application) .getConnections()를 사용하면 열려있는 WebSocket 연결로 모든 활성 페이지를 쉽게 얻을 수 있습니다.