2012-02-10 9 views
10

Avevo configurato un sistema con un programma Java in esecuzione su un server e un'applet Java incorporata in una pagina sul browser di un client e due che comunicavano tramite socket Java. Mi chiedo se posso passare da un'applet Java a solo HTML5 e javascript, utilizzando un WebSocket sul lato client per la comunicazione con il socket Java sul server.È possibile collegare un socket Web HTML5 a un socket Java?

C'è un modo semplice per far comunicare un WebSocket con un socket Java?

+2

[This] (http://stackoverflow.com/q/3202188/1101070) domanda/risposta è probabilmente quello che stai cercando. Non hai menzionato alcun dettaglio sul tuo ambiente ma quella risposta è abbastanza completa. –

+0

Per rispondere in modo sintetico: No, non è possibile connettere un socket Java a un WebSocket. Tuttavia, esistono implementazioni WebSocket sul lato server per Java. – BCarpe

+0

Avrei bisogno di prendere uno di questi e modificare il mio programma server esistente per passare i suoi dati usando quello. – BCarpe

risposta

14

C'è un modo semplice per comunicare un WebSocket con un socket Java?

Da quello che ho capito, WebSocket funziona dal lato client aprendo una porta 80 connettersi al lato server, e inviando una richiesta HTTP 1.1 variante al server per negoziare una connessione WebSocket. Se il server lo riconosce, invierà una risposta adeguata e quindi consentirà di utilizzare la connessione TCP ancora aperta per le interazioni client-server full duplex.

Sembra che sia possibile unire rapidamente un lato server che è solo comprensibile alla negoziazione WebSocket e non HTTP completo. Tuttavia, penso che stiate meglio guardando alle implementazioni di WebSocket esistenti, incluse quelle incorporate nei server HTTP/stack di protocolli.

This Wikipedia page confronta un numero di implementazioni WebSocket e dovrebbe aiutarti a decidere quale implementazione lato server utilizzare.

Ma per rispondere direttamente alla tua domanda letterale, un client WebSocket può connettersi solo a un server che riconosce WebSocket; cioè quello che può eseguire la negoziazione iniziale. (Sul lato client, è possibile implementare a partire da un Socket nuda, ma è necessario implementare tutta la "roba HTTP" in cima a quella ... per la fase di configurazione.)

4

No, non è possibile comunicare utilizzando socket regolari con client WebSockets.

WebSockets sono richieste HTTP speciali, con un aggiornamento nell'intestazione HTTP e un protocollo standard per stabilire una connessione (vedere official RFC doc).