2010-09-08 26 views
5

Mi piacerebbe sviluppare un'applicazione desktop con Java (ho una conoscenza di base di Java). Verrà eseguito sul computer del cliente e estrarrà le informazioni dal server ospitato su Internet. Posso impostare un'attività di pianificazione per connettersi al server ogni 2 minuti e controllare eventuali aggiornamenti/modifiche, ma non penso che sia una buona idea. C'è un modo per far sapere ai clienti le modifiche? Ad esempio, ogni volta che un server di modifiche invierà una notifica ai client da aggiornare? Il server potrebbe avere una tecnologia diversa, ad es. Javacome comunicare ai client desktop java le modifiche dal server?

qualsiasi aiuto sarebbe molto apprezzato, grazie ancora!

risposta

1

È possibile utilizzare JMS per inviare messaggi dal proprio server alle applicazioni se si utilizza un server Java.

Oppure è possibile utilizzare un'applicazione Comet per inviare messaggi ai client tramite HTTP.

Un terzo modo sarebbe creare il proprio sistema push in cui i client si collegano al server per fornire alcune informazioni su come essere contattati, e con il pattern Observer/Observable si notifica ogni client ad ogni modifica.


Risorse:

+0

+1 per JMS e non essere Jon Skeet – willcodejavaforfood

5

Pushing a clienti sta andando sempre essere ettari rd - in gran parte a causa dei firewall. Rendere il client estraibile dal server (con HTTP) è molto più probabile che funzioni nella maggior parte delle situazioni.

Ora, si sta effettuando il polling ogni due minuti. Che sia appropriato - o potrebbe essere meglio farlo molto più raramente (una volta al giorno, diciamo) a seconda di cosa stai aggiornando. Se si tratta di aggiornamenti al software client, gli aggiornamenti rari vanno bene. Se si tratta di aggiornamenti di una conversazione in chat, anche due minuti sono troppo lunghi - nel qual caso è necessario esaminare comet/long polling come tecnica. (Esistono varie tecnologie per implementare il polling lungo, non è necessario utilizzare qualcosa di specifico - è per questo che l'ho descritto come una tecnica piuttosto che altro.)

Problemi correlati