2012-02-10 14 views
10

私は、サーバー上で動作するJavaプログラムと、クライアントのブラウザ上のページに埋め込まれたJavaアプレットと、Javaソケットを介して通信する2つのJavaアプレットを持つシステムをセットアップしました。私は、JavaアプレットからHTML5とjavascriptに切り替えることができるかどうか、クライアント側のWebSocketを使用してサーバー上のJavaソケットとの通信を行うことができるのだろうかと思います。HTML5ウェブソケットをJavaソケットに接続できますか?

WebSocketをJavaソケットと簡単にやり取りする方法はありますか?

+2

[This(http://stackoverflow.com/q/3202188/1101070)質問/回答はおそらくあなたが探しているものです。あなたの環境に関する詳細は言及していませんが、その答えはかなり包括的です。 –

+0

これを簡単に答えてみましょう:いいえ、JavaソケットをWebSocketに接続することはできません。しかし、そこにはJava用のサーバーサイドWebSocket実装があります。 – BCarpe

+0

私はこれらのうちの1つを取って、既存のサーバープログラムを使ってそのデータを渡す必要があります。 – BCarpe

答えて

14

WebSocketをJavaソケットと簡単にやり取りする方法はありますか?

私が理解しているところでは、WebSocketはクライアント側でポート80を開いてサーバー側に接続し、WebSocket接続をネゴシエートするためにサーバーにバリアントHTTP 1.1要求を送信します。サーバーがこれを認識すると、適切な応答を送信し、全二重のクライアントとサーバーとのやり取りに、まだ開いているTCP接続を使用できるようにします。

ちょうどが完全なHTTPではなくWebSocketのネゴシエーションを理解しているサーバー側をすばやくまとめることができるようです。しかし、HTTPサーバ/プロトコルスタックに組み込まれているWebSocket実装を含め、既存のWebSocket実装を見る方が良いと思います。

This Wikipedia pageは、いくつかのWebSocket実装を比較し、どのサーバーサイド実装を使用するかを決定するのに役立ちます。

しかし、リテラル質問に直接答えるには、WebSocketクライアントはWebSocket対応のサーバーにしか接続できません。すなわち、初期ネゴシエーションを実行できるものである。 (クライアント側では、裸のSocketからの実装を実装することができますが、その上に "HTTP stuff"を実装する必要があります...)

4

いいえ、あなたは通信できませんクライアントWebSocketを持つ通常のソケットを使用します。

WebSocketは特別なHTTP要求で、HTTPヘッダーでのアップグレードと、接続を確立するための標準プロトコル(official RFC docを参照)があります。

関連する問題