2008-10-09 7 views
5

Ich versuche, einen Logger für eine GWT-Anwendung als Übung zur Bewertung von GWT zu erstellen. Was ich speziell tun möchte, ist es, dass ich Nachrichten an einem clientseitigen Label jederzeit von der Serverseite aus veröffentlichen kann. Wenn also ein paar interessante Dinge auf dem Server passiert sind, kann der Client aktualisiert werden.Client-Seite Callback in GWT

Meine erste Frage ist, ist dies möglich, kann ich es nicht verstehen.

Zweitens, wenn es möglich ist, wo soll ich nach Informationen suchen, habe ich versucht, Google und ihre Dokumentation und alle Vitrinen haben nichts dazu.

Danke

Antwort

9

Nun, es gibt ein paar Optionen. Sie müssen die Daten vom Server abrufen ... Sie müssen also entweder den Server abfragen oder Server Push verwenden.

Polling ist ziemlich einfach. Verwenden Sie einfach die Klasse Timer, um wiederholt einen Dienst aufzurufen, um zu sehen, welcher Wert angezeigt werden soll.

Server Push erfolgt mit etwas wie Kometen. here ist eine Implementierung für gwt, die etwas vielversprechend aussieht. Das Grundkonzept dahinter ist, dass der Browser eine Anfrage an den Server sendet und die Verbindung offen hält, damit der Server Daten weiter senden kann.

Komet ist die bessere Option, wenn Sie es zum Laufen bringen können. Es wird wahrscheinlich einfacher und besser skalieren.

Viel Glück!

+0

Ich bin mir nicht sicher, ob ein Push-Modell jemals "besser skalieren" wird als ein Poll-Modell. Sie binden Serverressourcen ein, um auf der Clientseite ein wenig faul zu sein. Der Hauptvorteil von GWT besteht darin, dass dem Client mehr Arbeit gegeben wird, sodass der Server größere Benutzermengen leichter verarbeiten kann. Ich würde empfehlen, zu einem Poll vs a Push-Modell zu wechseln. – Kieveli

+0

Es hängt von Ihrer genauen Situation ab. Wenn Sie viele Daten ziemlich häufig auf viele Clients streamen, kann Ihnen eine Atmosphäre wie diese die Zeit ersparen, diese Verbindungen ständig neu zu verhandeln. –

2

Polling ist wahrscheinlich der beste Weg, um das zu tun, wonach Sie suchen. Das große Problem mit GWT ist, dass alles serialisierbar sein muss. Ich bin nicht sicher, ob etwas, das zum Browser pushen kann, leicht serialisiert werden kann.

+0

Wenn es für die Protokollierung ist, würde die Sache, die vom Server geschoben wird, eine Reihe von Arten sein, denke ich – Chii