概 要
WebSocketプロトコルは、IoT(Internet of Things)プロトコルであり、通常の同期HTTP接続を非同期双方向データトンネルにアップグレードできます。Webサーバーとの通常のHTTP接続を確立し、クライアントとサーバーの両方がWebサーバーから返された応答に応じてWebSocketプロトコルを認識しているかどうかを確認できます。
サポートされているWebSocketプロトコルをチェックする非侵入テストは、HTTP / 1.1標準と互換性があり、プロトコルがWebサーバーでサポートされていない場合、最悪の場合にエラーコード付きのページを返します。通常のページを提供するためのウェブサーバーサービスは、WebSocketプロトコルと共存しながらも完全な運用を維持します。
WebSocketプロトコルは、WebSocket接続を最初に確立するためだけにHTTP / 1.1プロトコルを使用して、データにTCP / IPプロトコルを使用しています。
WebSocketプロトコルの利点は、HTTPプロトコルを使用して接続を確立することです。これによりファイアウォールの扱いが容易になります。通常、標準ポートTCP 80は発信接続に使用でき、WebSocketクライアントは問題なく動作します。WebページとWebSocketのトンネリングプロトコルを提供するWebSocketサーバーでは、ファイアウォールで開くか、ルーターがインターネットからローカルネットワークに転送できるようにする必要があります。
要 件
embOS / IP WebSocketアドオンにはTCP / IPスタックが必要です。embOS / IP用に最適化されていますが、ソケットAPIを持つRFC準拠のTCP / IPスタックを使用できます。出荷には標準のWinsock APIを使用するWin32シミュレーションと、embOS / IPのソケットAPIを使用する実装が含まれています。
WebSocketプロトコルは、ファイアウォールを介した通信を簡素化するために、TCP / IPプロトコルの上で使用するカプセル化トランスポートプロトコルです。シンプルで軽量でオープンです。その特徴は、Machine to Machine(M2M)やIoT(Internet of Things)のような制約された環境を含む多くの状況での使用に理想的です。
データフレーミング
〈TCPプロパティ〉
・ 失われたデータは再送されます。
・ データは正しい順序で受信されます。
・ TCP KEEPALIVESを使用して接続状態を確認できます。
〈UDPプロパティ〉
・ 小さなフレームでデータを送ることができます(大きなメッセージの一部です)。
・ フレームの長さは分かっています(メッセージの長さは完全ではありません)。
・ 制御フレーム(UDP:その他のデータ)は、データフレーム間で送信することができます。
RFC実装
[RFC 6455]直接外部ダウンロード: WebSocketプロトコル
使用率
Cortex-M4システムでの使用率
embOS / IP WebSocketプロトコル ROM約1.7KByte
embOS / IP WebSocketコンテキスト RAM約301.7KByte
ROMの使用量は、コンパイラのオプション、コンパイラのバージョン、使用されているCPUによって異なります。以下の表に示すWebSocketアドオンのメモリ要件は、Cortex-M4システムで測定されています。詳細な構成の詳細は、特定の例のセクションにあります。
SEGGER Embedded Studio V3.10e、サイズの最適化を使用したCortex-M4システムでは、以下のリソース使用量が測定されています。