2016-07-29 3 views
2

백엔드 프로세스가 페이지의 구성 요소를 새로 고침하도록 지시해야하는 개찰구 페이지로 작업하고 있습니다. 전체 페이지를 새로 고치고 싶지는 않습니다. 단 하나의 구성 요소이므로 Ajax 영역에 있다고 생각합니다.백엔드에서 개찰 자 구성 요소 다시 렌더링

나는 AjaxSelfUpdatingTimerBehaviour과 같은 몇 가지 Ajax 타이머를 찾았지만 변경 사항은 상당히 즉각적이어야하며 일부 고주파수 타이머가 필요하므로 실제 푸시를 실제로하고 싶습니다.

누구나 이것을 달성하는 좋은 방법을 알고 있습니까?


편집 한

나는 개찰구에서 WebSocket 구현을 찾고있다. 나는 웹 소켓의 행동이 유망 보이는 볼 수 있지만 내가 찾을 수있는 유일한 서버 푸시 방법은 다음과 같이이다 :

IWebSocketConnectionRegistry registry = new SimpleWebSocketConnectionRegistry(); 
    Application application = Application.get(applicationName); 
    IWebSocketConnection wsConnection = registry.getConnection(application, sessionId, pageId); 

    if (wsConnection != null && wsConnection.isOpen()) { 
    wsConnection.send("Asynchronous message"); 
    } 

하지만 난 아약스와 같은 형태 보증 된 방법으로 구성 요소를 업데이트 할 수있는 방법이 표시되지 않습니다 target.add (구성 요소)와 같은 비헤이비어입니다. 누군가 올바른 방향으로 나를 정교하게 가르키거나 지적 할 수 있습니까? Google은 내 친구가 아닙니다.

답변

1

.

@Override 
public void onEvent(IEvent<?> event) 
{ 
    if (event.getPayload() instanceof WebSocketPushPayload) 
    { 
    WebSocketPushPayload wsEvent = (WebSocketPushPayload) event.getPayload(); 
    if (wsEvent.getMessage() instanceof MyObj) 
    { 
     MyObj myObj = wsEvent.getMessage(); 
     // do stuff 
     wsEvent.getHandler().add(myComponent); 
    } 
    } 
} 

나는이 dependecies 사용하고 있습니다 :

IWebSocketSettings webSocketSettings = IWebSocketSettings.Holder.get(this); 
WebSocketPushBroadcaster broadcaster = new WebSocketPushBroadcaster(webSocketSettings.getConnectionRegistry()); 
Application application = Application.get(applicationName); 
broadcaster.broadcastAll(application, myObj); 

당신이 개체 필요한 페이지 이벤트에 대한 확인 나는 웹 소켓 정보를 통해 찾고있다

<dependency> 
     <groupId>org.apache.wicket</groupId> 
     <artifactId>wicket-native-websocket-core</artifactId> 
     <version>6.21.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.wicket</groupId> 
     <artifactId>wicket-native-websocket-jetty</artifactId> 
     <version>6.21.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.wicket</groupId> 
     <artifactId>wicket-native-websocket-tomcat</artifactId> 
     <version>6.21.0</version> 
    </dependency> 
1

당신은 WebSocket을 조사한다 : 나는 물체를 집어 넣으려고 WebSocketPushBroadcaster을 사용하고

https://ci.apache.org/projects/wicket/guide/7.x/guide/nativewebsockets.html

+0

을,하지만 난 목표를 정확히 다시 칠하는 방법을 알아내는 데 어려움을 겪습니다. 텍스트 메시지를 비동기 적으로 보낼 수있는 방법 만 찾을 수 있습니다. Ajax target.add (Component) 호출과 같이 형식이 안전한 방식으로 뭔가를 수행 할 수 있습니까? –