2010-09-08 6 views
5

Ich möchte eine Desktop-Anwendung mit Java entwickeln (ich habe sehr grundlegende Kenntnisse von Java). Es wird auf dem Computer des Kunden ausgeführt und Informationen von dem Server abrufen, der im Internet gehostet wird. Ich kann eine Zeitplanaufgabe einstellen, um alle 2 Minuten eine Verbindung zum Server herzustellen und nach irgendwelchen Aktualisierungen/Änderungen zu suchen, aber ich denke nicht, dass es eine sehr gute Idee ist. Gibt es eine Möglichkeit, die Kunden über die Änderungen zu informieren? Zum Beispiel, wenn jeder Change Server eine Benachrichtigung an die Clients zum Update senden würde? Der Server könnte eine andere Technologie, z.B. JavaWie benachrichtigen Sie Java Desktop-Clients über Änderungen vom Server?

jede Hilfe würde sehr geschätzt werden, nochmals vielen Dank!

Antwort

1

Sie können JMS verwenden, um Nachrichten von Ihrem Server an Ihre Anwendungen zu senden, wenn Sie einen Java-Server verwenden.

Oder Sie könnten eine Comet-Anwendung verwenden, um Nachrichten über HTTP an die Clients zu senden. Ein dritter Weg wäre, ein eigenes Push-System zu erstellen, bei dem Ihre Clients eine Verbindung zum Server herstellen, um Informationen darüber zu geben, wie Sie kontaktiert werden sollen. Mit dem Observer/Observable-Muster teilen Sie jedem Client bei jeder Änderung mit.


Ressourcen:

+0

+1 für JMS und nicht Jon Skeet – willcodejavaforfood

5

zu Kunden Pushing wird immer sein ha rd - vor allem wegen Firewalls. Es ist viel wahrscheinlicher, dass der Client vom Server (mit HTTP) ausgeht.

Jetzt werden alle zwei Minuten eine Umfrage durchgeführt. Das kann geeignet sein - oder es kann besser sein, es viel seltener zu tun (einmal am Tag, sagen Sie) abhängig davon, was Sie aktualisieren. Wenn es Updates für die Client-Software gibt, sind seltene Updates in Ordnung. Wenn es sich um Updates für eine Chat-Unterhaltung handelt, sind sogar zwei Minuten viel zu lang - in diesem Fall sollten Sie sich die Technik comet/long polling ansehen. (Es gibt verschiedene Technologien zum Implementieren langer Abfragen; Sie müssen nichts Spezifisches verwenden - deshalb habe ich es als eine Technik und nicht als etwas anderes beschrieben.)

Verwandte Themen