HTML5 WebSocketについて少し混乱しています。私はそこにある数多くのチュートリアルを見てきましたが、それらの多くには、異なるポートを使用して接続するさまざまなバリエーションがあります。これらのポートはどういう意味ですか?
Adobe たとえば、これを使用します:
new WebSocket('ws://localhost:1740');
次に、別の tutorial に、ポートが不要な場合にこのようになります。
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を完全に理解して、より動的なアプリケーションを実験して作成できるようにしています。助けてくれてありがとう。
以下は 最新のWebSocketドラフト からのものです。
デフォルトでは、WebSocketプロトコルは通常のWebSocket接続にポート80を使用し、TLS [RFC2818]を介してトンネリングされたWebSocket接続にポート443を使用します。
実際には、使用されていない有効なポートを使用できるはずです。クライアントがサーバー側スクリプトがソケット接続用に開くポートと同じポートに接続しようとしている限り、問題はありません。
ポートに関する簡単なメモ:
-ポート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が有効なサーバー側スクリプトを指していないと思いますが、それ以上の情報がないとコメントするのは困難です。
サーバーには、WebSocket接続を受け入れるエンドポイントが必要です。したがって、そのエンドポイントが/echo
接続先:
ws://localhost:8080/echo/websocket
Unexpected response code: 200
除外するとエラー/websocket
エンドポイントの後のサフィックス。私も同じように混乱していました このリンク は私にとって少し問題を解決しました。
私も同じ問題を抱えていましたが、
Unexpected response code: 200
Webソケットを処理するには、サーバー側のスクリプトが必要です。またはNode.jsを使用してサーバースクリプトを作成できます。教育のために、独自のWebSocketサーバースクリプトを作成することができます。