2016-03-22 5 views
0

Ich muss Front-End für Server-Sent-Event zu implementieren. Ich benutze GWT, und ich kann keine Lösung finden, um einen Listener für SSE zu erstellen. Ich muss die Daten vom Server pushen und jedes Mal, wenn Daten geändert wurden, auf dem Client erhalten. So jetzt habe ich eine etwas wie folgt aus:Deal mit Server gesendet Ereignis auf Client-Seite GWT

private void method() { 
    final EventSource eventSource = EventSource.newEventSourceIfSupported(); 
    if (null != eventSource) { 
     eventSource.setListener(this); 
     eventSource.open(GWT.getHostPageBaseURL() + "rest/myresource"); 
    } 
} 

@Override 
public void onOpen(EventSource eventSource) { 
    Window.alert("Open"); 

} 

@Override 
public void onClose(EventSource eventSource) { 
    Window.alert("onClose"); 

} 

@Override 
public void onMessage(EventSource eventSource, String lastEventId, String type, String data) { 
    Window.alert("lastEventId: " + lastEventId); 
    Window.alert("type: " + type); 
    Window.alert("data: " + data); 

} 

@Override 
public void onError(EventSource eventSource) { 
    Window.alert("onError"); 

} 

meine Klasse implementiert EventSourceListener Aber es funktioniert nicht. Eigentlich reagiert dieser Code nur, wenn die Verbindung geöffnet wird, aber es ist unmöglich, eine Nachricht vom Server zu empfangen. Kann jemand das Problem mit dem Empfang von Daten auf dem Client mit GWT umgehen?

Antwort

0

Es gibt so viele Methoden gibt es in GWT für push back services wie ein GWT Event Servicesenter link description here

Damit der Server eine Anfrage an den Client zu starten, müssen Sie WebSockets und experimentelle HTML5-Funktion verwenden derzeit only supported by Chrome.

Oder, um diese Art der Interaktion zu simulieren, können Sie Comet (Long-Polling), in GWT durch die rocket-gwt project zur Verfügung gestellt.

Verwandte Themen