機能統合¶
本章では、FIRERPA リモートデスクトップとその関連機能を統合する方法をご紹介します。操作や表示などの目的で、フロントエンドのページに組み込むことができます。ここでは詳しい説明は行いませんので、APIFOX ドキュメントを参照してテストしてください。ただし、その前にいくつかの事前設定と基本情報を説明しておきます。
ヒント
以下の内容は、WebSocket、Canvas 描画、H.264 などに関する基本的な知識があることを前提としています。
事前設定¶
インターフェースをテストしやすくするために、デバイスが USB で現在のコンピューターに接続されており、かつデバイスでログイン証明書の検証(HTTPS)が無効になっていることを確認してください。この2つの手順が完了したら、APIFOX プラットフォームで関連設定を行う必要があります。WS インターフェースが関係するため、APIFOX のデスクトップクライアント(Web 版ではない)をインストールし、該当プロジェクトをクライアントにインポートしてください。インストールとインポートの方法は各自で調べてください。
リアルタイム映像¶
リアルタイム映像は WebSocket を介して転送され、MJPEG(Motion JPEG)と H.264 NALU の2つの形式に対応しています。MJPEG は最も簡単に利用でき、実際にはデバイス画面の連続的なスクリーンショットが転送され、転送速度が十分に速ければ動的なリアルタイム画面となります。WebSocket で受信した各フレームのメッセージを JPEG 形式で画面に描画するだけです。一方、H.264 形式は基礎知識がより必要です。Canvas にレンダリングする前にデコード操作が必要なため、既存の H.264 デコーダーを検索・統合するか、独自にデコード・描画を行う必要があります。
H.264 は MJPEG と比較して、通信量を少なくとも半分に削減でき、速度も速いですが、すべてのデバイスに適しているわけではありません。一部のデバイスでは H.264 エンコード性能が高くない場合があり、その場合は MJPEG で転送する必要があります。もちろん、MJPEG にも欠点があります。各フレームが完全な画像であるため、帯域幅への要求が高くなります。
リアルタイムタッチ¶
リアルタイムタッチも WebSocket を介して転送され、特別な点はありません。特定の形式で「押下」「移動」「離上」の3種類の操作を送信するだけです。Web ページの mousedown、mouseup などのイベントでトリガーでき、転送されるデータ本体はイベントタイプと座標です。ここで唯一注意すべきことは、Canvas と実際の画面サイズに基づいて座標変換を行い、ユーザーが Canvas 上で操作した座標に対応する実際の画面座標を計算する必要があることです。
キー操作¶
キー操作は比較的簡単で、特定の形式で関連インターフェースに POST リクエストを送信するだけです。キー操作では、デバイスのナビゲーションキーの制御や、通常の英字入力がサポートされています。
コマンドターミナル¶
コマンドターミナルは WebSocket 通信を使用します。xterm.js などの関連技術を用いて接続する必要があります。API ドキュメントに従って、入出力を特定の形式に整形して送信するか、xterm 出力をリクエストするだけです。
リアルタイム命令¶
リアルタイム命令インターフェースは、自動化や制御系の命令をデバイスに送信するためのものです。具体的なリクエスト形式と WebSocket/HTTP パスについては、APIFOX プロジェクトのドキュメントを参照してください。統合する際は、映像と操作のタイミングを一致させるために、「リアルタイム映像」「リアルタイムタッチ」と組み合わせて使用することを推奨します。