web-dev-qa-db-ja.com

JavaScript \ HTMLでソケットを使用する方法は?

JavaScript\HTMLでソケットを使用する方法は?

クールなHTML5を使用している可能性がありますか?

図書館?チュートリアル?ブログ記事?

82
Rella

仕様:

記事:

チュートリアル:

図書館:

55
o.k.w

JavaScript/HTMLでソケットを使用する方法は?

JSまたはHTMLで汎用ソケットを使用する機能はありません。 1つは、セキュリティ障害です。

HTML5にはWebSocketがあります。クライアント側はかなり簡単です:

socket= new WebSocket('ws://www.example.com:8000/somesocket');
socket.onopen= function() {
    socket.send('hello');
};
socket.onmessage= function(s) {
    alert('got reply '+s);
};

接続を取得してそれらを使用するには、サーバー側に特殊なソケットアプリケーションが必要です。 Webサーバーのスクリプトインターフェイスから通常行うことではありません。ただし、それは 比較的単純なプロトコル ;です。 noddy Python SocketServerベースのエンドポイントは、数ページのコードでした。

いずれにせよ、まだ存在していません。 JavaScript側の仕様もネットワークトランスポートの仕様も決定されておらず、ブラウザはそれをサポートしていません。

ただし、WebSocketが広く利用可能になるまで、使用可能な場合はFlashを使用して、フォールバックをスクリプトに提供できます。 Gimiteの web-socket-js は、そのような無料の例です。ただし、Flashソケットと同じ制限、つまり、サーバーがソケットポートへの要求に応じてクロスドメインポリシーを吐き出さなければならないという制限があり、プロキシ/ファイアウォールに問題が生じることがよくあります。 (Flashソケットは直接作成されます。HTTPプロキシを介してのみネットワークから抜け出すことができる、パブリックIPに直接アクセスできない人にとっては、機能しません。)

低レイテンシーの双方向通信が本当に必要な場合を除き、今のところXMLHttpRequestを使用することをお勧めします。

75
bobince

この質問は1年以上たった今、 Socket.IO が出てきて、現在ブラウザでソケットを操作するための主要な方法であるように思われることに言及することが重要だと思います。また、私の知る限り Node.js と互換性があります。

46
Ricket