2

奇妙な質問のように思えますが、私は本当に混乱しています。Tornadoからこの例をダウンロードしたとき、次のように思ったからです。しかし、問題は、オフラインモードでテストしたため、機能しませんでした。キャッシュにjQueryがありませんでした。

そして、SOからこれを見つけました:

Ajax - サーバーへの接続を作成してデータを送信し (get / post として簡略化)、応答を受信します。

長いポーリング - サーバーへの接続を作成し、データを送信し、接続を維持し、サーバーからデータを時々受信します。接続は短時間維持され、定期的な再接続が行われます。サーバー側では、Web ページのように扱われます。

WebSockets - サーバーへの接続を作成し、必要なだけ保持します。サーバーまたはクライアントは簡単にブレーキをかけることができます。データの双方向送信。WebSockets は通常、各メッセージにマスキングを使用するため、データは単純に暗号化されます。

では、サーバー側に関連するものであっても、なぜ常に内部に Javascript があるのでしょうか?

4

2 に答える 2

4

ブラウザーは JavaScript で WebSocket API (RFC 6455 を参照) を実装しているため、JavaScript はブラウザーの WebSocket にとってのみ重要です。したがって、HTML5 ページ内から WebSocket にアクセスする場合は、JavaScript を記述する必要があります。ただし、Java アプレットを使用して Java のクライアントで WebSocket を実行することもできます。(アプレットは支持されなくなりましたが。) さらに、モバイル iOS を含むネイティブ アプリケーションから WebSocket を実行することも可能です。

多くの WebSocket サーバー プラットフォームは、複数の種類のクライアントをサポートしようとします。たとえば、Kaazing は JavaScript だけでなく、.NET、Silverlight、Java、Objective-C でもクライアントを提供します。WebSocket の基本的な考え方は、サーバー ロジックを 1 回記述すれば、さまざまなクライアントで実行した内容を "収集" できるということです。

WebSocket を使用する場合は、WebSocket 接続を介して受信するデータを処理する必要があるため、基本的な HTML タグ以外のプログラミング言語が必要になることに注意してください。そのデータは、AMQP、STOMP、socket.IO、WAMP など、さまざまなプロトコルを介して取得できます。プロトコルの種類ごとに、プロトコルの処理を処理できる別のライブラリが実際に必要になります。

于 2012-12-03T20:17:37.313 に答える
3

Javascript は、クライアント側のフォーム検証と動的なユーザー インタラクションを Web ページに追加する方法として始まりました。ただし、最新の Javascript は非常に強力な言語であり (多くの煩わしさもあります)、ブラウザーまたはサーバー上で ( Node.jsなどを使用して) 実行できます。最新のブラウザーは、Web Workers、Canvas、Web GL、Web Audio API、XMLHTTPRequest (つまり AJAX)、タイマー、イベントなど、Javascript にのみ適用される (Dart のような別の言語が広くサポートされるまで) 多数の API を提供します。

ブラウザーの古い概念は、静的な HTML マークアップ ドキュメントをダウンロードしてレンダリングできるプログラムの概念です。ブラウザーは、主に Web アプリケーションを実行するためのオペレーティング システム + ライブラリ + API と考えると便利です。つまり、最新の Web ブラウザーの主な目的は、Javascript を実行し、Javascript 用の API を提供することです。HTML の主な目的は、Web アプリケーションを開始するためにロードする初期 Javascript ファイルを指定することです。HTML と CSS を使用して、DOM ツリー (Javascript API の可視部分) の初期状態を定義することもできます。ただし、HTML と CSS で静的に指定できるものはすべて、Javascript を使用して動的に生成することもできます。

そのコンテキストでは、WebSockets は、Web アプリケーション (つまり、ブラウザーで実行されている Javascript プログラム) が WebSocket サーバーへの低遅延の双方向通信チャネルを作成できるようにするブラウザーの API です。

更新

「WebSockets は Javascript バージョン xxx で利用可能です」とだけ言わないのはなぜですか?

  1. Javascript は Web (Node.js など) だけのものではなく、これらの API は Javascript だけのものではありません。たとえば、Dart が有効になっている Chrome のバージョンを使用している場合、これらの同じ API を Dart から使用できます。script タグは他の言語を許可するので、将来のブラウザーはこれらの API にアクセスできる他の言語を実行する可能性があります。
  2. Javascript はECMAによって定義された言語であり、WebSockets、Web Workers などはHTML5 の一部としてW3Cによって定義されたブラウザー API です。ブラウザーのバージョンによって、使用可能な Web API と Javascript のバージョンが決まります。新しい API をサポートする古いバージョンの Javascript を搭載したブラウザーを使用している場合もあれば、その逆の場合もあります。
于 2012-12-03T15:54:04.850 に答える