Costruire un server per il sistema di feedback di comunicazione bidirezionale lato client / server in Java?

StackOverflow https://stackoverflow.com/questions/6333935

Domanda

Scenario: l'utente accede al software client che forma una connessione bidirezionale persistente con l'entità lato server (server) che elaborerebbe le attività specificate dall'utente. Quando l'entità lato server, durante l'elaborazione dell'attività dell'utente, incontra un errore o richiede un ulteriore input da parte dell'utente, invia una notifica al software client e attende che il client decida cosa fare. Il software client prenderà i nuovi input specificati dall'utente e li invierà al server. Il lato server continua dal punto in cui si è interrotto l'ultima volta con i nuovi input specificati dall'utente. Questo ciclo di feedback continuerà fino al termine dell'elaborazione. Gli input utente progressivamente aggiornati saranno tutti archiviati sul lato server e accessibili e modificabili dal software client. Quindi, se un client elimina un input specifico, tale modifica si rifletterà immediatamente sul lato server. Sul lato server, è probabilmente necessaria un'interfaccia aggiuntiva per instradare i client di utenti diversi ai nodi hardware disponibili (cloud) per supportare attività multiutente simultanee in esecuzione sul lato server.

Sul lato client, sospetto di utilizzare i socket per connettersi al server ...

Ora per il server, sono un po 'perso perché sembra che ci siano molti server Java diversi come Jetty e Netty. Sto anche praticando la cautela per non provare a reinventare nessuna ruota qui.

La creazione di un server è l'approccio giusto? o costruire un servizio web che completerà un'attività specifica su richiesta?

Inoltre, non sto solo cercando una soluzione valida per tutti (probabilmente un pio desiderio), ma sono aperto a qualsiasi approfondimento sulla mia situazione attuale.

È stato utile?

Soluzione

Netty fornirà molto di ciò che sembra che ti serva per questo, senza costringerti a reinventare un server socket.Detto questo, mi assicurerei che tu abbia effettivamente bisogno di una comunicazione bidirezionale in tempo reale tra il client e il server.Se puoi rielaborare il problema in modo tale che le comunicazioni client-server non debbano essere in tempo reale, allora cose come i servizi web RESTful diventano una possibilità e (secondo la mia esperienza) sono molto meno complicate e soggette a errori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top