14

HTML5 Websockets について少し混乱しています。私は数多くのチュートリアルを見てきましたが、それらの多くには、さまざまなポートを使用して接続するためのさまざまなバリエーションがあります。これらのポートは何を意味しますか?

たとえば、Adobeはこれを使用します。

new WebSocket('ws://localhost:1740');

次に、ポートが不要な別のチュートリアルがあります。

new WebSocket("ws://www.websockets.org");

最後に、3 番目のチュートリアルにはポートがありますが、完全に異なります。

new WebSocket("ws://localhost:8080/echo");

私の質問は、なぜこれらが異なるのですか?接続するポートを知るにはどうすればよいですか? また、私は自分の接続を試みました:

var ws = new WebSocket("ws://test.ontarget-network.com/");

しかし、次のエラーが表示されます。Unexpected response code: 200

私はテストして、他のさまざまな「ポート」に接続しようとしました(明らかに何をしているのかわからず、乱数を入力しています)、このエラーは消えますが、私のコード

ws.onopen = function(){
   alert("Connection Established");
};

実行しません。

HTML5 の Websockets API を完全に理解しようとしているので、より動的なアプリケーションを試して作成することができます。助けてくれてありがとう。

4

4 に答える 4

13

以下は、最新の WebSocket ドラフトからのものです。

デフォルトでは、WebSocket プロトコルは通常の WebSocket 接続にポート 80 を使用し、TLS 経由でトンネリングされる WebSocket 接続にポート 443 を使用します [RFC2818]。

実際には、使用されていない有効なポートを使用できるはずです。クライアントが、サーバー側スクリプトがソケット接続用に開くポートと同じポートに接続しようとしている限り、問題はありません。

ポートに関する簡単なメモ:

  • ポート 80 は HTTP ポートです。
  • ポート 8080 は代替 HTTP ポートです。
  • ポート 443 は HTTPS (つまり、TLS を使用した HTTP) ポートです。
  • Adobe コードのポート 1740 は、他のサービスでまだ使用されていないランダムなポートのようです。

事前設定されたポートの完全なリストについては、次を参照してください:
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

「予期しない応答コード: 200」エラーについては、クライアント側で使用している WebSocket URL が有効なサーバー側スクリプトを指していないと推測していますが、詳細情報なしでコメントするのは困難です。

于 2013-01-28T04:41:45.117 に答える
0

私は同じ問題を抱えていましたが、生き残るために

Unexpected response code: 200

Web ソケットを処理するサーバー側スクリプトが必要です。または、Node.jsを使用してサーバー スクリプトを作成することもできます。教育のために、独自の websocket サーバースクリプトを作成してみることができます。

于 2013-09-10T09:44:45.670 に答える
-8

実際には別のことがあります...すべてのブラウザにブロックされたポートのリストがあるため、すべてのポートへの接続を開くことはできません。Michal Zalewski の「The tangled Web」でポートの完全なリストを見たのを覚えています。ただし、簡単なグーグルでもこれが表示されると思います。

于 2013-04-06T10:41:35.773 に答える