関連する質問hereのHTMLファイル仕様のWebソケットインタフェースについて聞いたことがあります。
非常に有望ですね!
HTTPプロトコルを使用していて動作しているか、TCPソケットのように動作していますか?HTML5 Web Sockets Interfaceはどのように機能しますか?
答えて
WebソケットプロトコルはTCPベースのプロトコルですが、HTTPにダウングレードするように設計されています。サーバーにWeb Socketsプロトコルにアップグレードするように要求するHTTPハンドシェイクもあります。サーバがそれをサポートしているなら、二重TCP接続が使用されます。そうでなければHTTPに訴え、彗星はそれをハックします。
HTTPではないし、プレーンなTCPソケットでもない。これは、通常のソケット接続(AJAX/COMETは非常に高いオーバヘッド)の低オーバーヘッドを得るように設計されていますが、過去数年間に開発されたブラウザのセキュリティ原則の一部を犠牲にすることはありません。
最初のWebSocketsハンドシェイクは、HTTPとよく似ています。これにより、既存のHTTPプロキシとWebサーバーが着信WebSockets接続をサポートし、それらと適切なことを行う(つまり、実際のハンドラに転送する)ことが容易になります。しかし、成功したハンドシェイク(発信元情報の交換と検証を含む)の後、接続は開いたままで、双方向になります。
データの各パケット(サーバーまたはクライアントから送信された場合)は、 '\ x00'(ゼロバイト)で始まり、UTF-8でエンコードされたデータが続き、 '\ xff' )。
現在のドラフト規格はここにある:http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76
ます。また、リファレンスとして有用であることがnoVNCに含まwsproxyを見つけるかもしれません。 wsproxyは、汎用のWebSocketsからTCPへのソケットプロキシです。 noVNCに含まれるwsproxyのCとPythonの両方のバージョンがあります。ように
、それはHTTPリクエストと通常のTCPソケットの両方です。
websocket接続は、TCPを介した通常のHTTP要求を使用して要求されます。いくつかのヘッダーが送信されます。これは、要求されている通常のページではないWebSocketであることをWebサーバーに通知しますが、基本的にHTTP要求です。
応答がサーバーから送信されると、接続がアップグレードされます。つまり、HTTPに使用されていたTCP接続は、より高い呼び出しのためにハイジャックされます。双方向のリアルタイムのデータ転送です。
双方向通信が可能で、効率的に(これは主に彗星に勝つ)であれば、開発者の視野が大幅に広がります。突然、Web技術だけでは不可能だったMMOゲームやリアルタイムコラボレーションなどが可能になりました。サーバーの役割が来るような状況で
質問:httpリクエストをオープンして開いているようなのですか? (彗星の長いポーリングのような...)?それとも何か別のものですか? –
@RoyiNamirはい、まったく同じです。何かを送信したり受信したりするたびに新しい接続を開く必要はありません。 –
ありがとうございます。実際には本当にプッシュをします....そうですか? (そして、リクエストに応答しません...) –
:HTML 5では
は、FONEのようなのWebSocket walky-talkyない(2ウェイCOMM。)。 HTTPプロトコルがwebsocketプロトコルにアップグレードされました。 (wss:// from ws://)
SERVERはデュプレックスチャネルを開くことができ、したがって、デュプレックス通信に同意する必要があります。 このリンクも行ってください: http://www.html5rocks.com/en/tutorials/websockets/basics/
ありがとうございます。
- 1. Udacity Web Pythonインタプリタはどのように機能しますか?
- 2. amazon Webサービスはどのように機能しますか?
- 3. Mac Webダッシュボードアプリはどのように機能しますか?
- 4. HTML5以外のJavaScript HSVカラーピッカーはどのように機能しますか?
- 5. html5 appcache:リモートマニフェストファイルは機能しますか?
- 6. フォークしていないWebサーバーはどのように機能しますか?
- 7. iPadの「雑誌」はどのように機能しますか?
- 8. クライアント側のWebベースエージェントはどのように機能しますか?
- 9. Aptana 3のワークスペースはどのように機能しますか?
- 10. DBクラスタリングはどのように機能しますか?
- 11. hasRole()とhasPermission()Webセキュリティ式はどのように機能しますか?
- 12. Interface Builderのオブジェクトに対してAutosize機能を表示するにはどうすればよいですか?
- 13. weblogicでj_security_checkはどのように機能しますか?
- 14. wsDualHttpBindingはどのように機能しますか?
- 15. AppMakrとモバイルRoadieはどのように機能しますか?
- 16. サンドバーセッションはどのように機能しますか?
- 17. 複数のSqlDataSourceはどのように機能しますか?
- 18. iPhone用Facebookアプリはどのように機能しますか?
- 19. ウェブビーコン(ウェブバグ)はどのように機能しますか?
- 20. WCFサービスはどのように機能しますか?
- 21. HTML 5ターミナルはどのように機能しますか?
- 22. ブラウザエミュレータはどのように機能しますか?
- 23. dropbox.comの複数のファイルアップロード機能はどのように機能しますか?
- 24. JQueryのdatepickerのポップアップ機能はどのように機能しますか?
- 25. mysqlレプリケーションはどのように機能しますか?
- 26. jqueryのshow/hide機能はどのように機能しますか?
- 27. 機能の削減はどのように機能しますか?
- 28. セッターテンプレートのライブライブテンプレート機能はどのように機能しますか?
- 29. Facebookのリンク機能はどのように機能しますか?
- 30. Pythonの "all"機能はどのように機能しますか?
WebSocketプロトコル仕様を最後に見たとき、自動的にHTTPにダウングレードする方法はありませんでした。それはどこに追加されましたか? – EricLaw
NTPをサポートするWebSocket(?)は、80年代にシャットダウンされたプロトコルです。 – Christian