クラウド サーバーに IoT 通信ゲートウェイを実装するために必要な PHP ファイルは 2 つだけです。
ユーザーは、インターネットにアクセスできる世界のどこからでも、コントローラーのプログラム、制御、ステータスの表示を行うことができます。
ゲートウェイのフレームワークとして swoole ネットワーク通信エンジンを使用し、TCP サーバーと WebSocket サーバーを作成しました。
コントローラーとサードパーティ ソフトウェアは TCP クライアントとして TCP サーバーに接続し、ユーザーが開いた Web ページは WebSocket クライアントとして WebSocket サーバーに接続し、両方とも長い接続を維持します。
ゲートウェイの PHP コードは、クライアント ID、ソケットのファイル記述子 fd などを含む、コントローラー、Web ページ、ホスト ソフトウェア、その他のクライアントの接続情報を保存するテーブルを作成します。
コントローラーは、クラウド サーバー上の TCP サーバーとの TCP 接続を確立し、ハートビート メッセージを定期的に TCP サーバーに送信します。 TCP サーバーは、メッセージを受信した後、メッセージ内の送信元アドレスを解析し、TCP 接続の FD と送信元アドレスをテーブルに保存します。
ユーザーが Web ページを開いた後、JavaScript スクリプトは TCP 接続を WebSocket サーバーに接続し、同時に Web ページに宛先アドレスとして入力されたコントローラー コードから送信元アドレスとしてランダムな UUID を生成します。 WebSocket サーバーに送信する制御メッセージを生成します。WebSocket サーバーは、それを受信した後、メッセージの送信元アドレスと宛先アドレスを分析し、宛先アドレスと送信元アドレスに従ってハートビート メッセージを TCP サーバーに送信します。メッセージを受信した後、WebSocket サーバーはメッセージ内の送信元アドレスと宛先アドレスを解析し、宛先アドレスに基づいてテーブルから宛先アドレスに対応する TCP 接続を見つけ、この接続を通じてメッセージをコントローラーに転送します。
同時に、クラウド サーバーの uuid が定義されます。これは、コントローラー、Web ページ、およびサーバーとのその他の対話に使用され、クラウド サーバーからの時刻を同期したり、状態を保存したりするために使用されます。 mysql データベースとその他の関数。
2 つの PHP ファイルは合計約 500 行のコードで、非常に単純です。
以上がswooleに基づいてクラウドでIoTゲートウェイを設計する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。