受信データのシリアルポートを継続的に監視するPythonスクリプトを備えたLAMP Webサーバーがあります。これは、ホーム オートメーション システムの一部です (Arduino Yun と、それぞれ nrf24L01+ RF トランシーバーを搭載した一連の Pro Mini を使用)。
私の目標は次のとおりです。
- 「door open」や「temp = 72F」など、受信データを MySQL の適切な場所に保存します。Python スクリプトでこれを処理できると思います。
- サーバー送信イベント (SSE) を使用して、新しいデータをクライアント ブラウザーにプッシュします (クライアントが接続されている場合)。
AJAXを使用できることはわかっていますが、データをプッシュする方がポーリングよりも優れているようです。問題は、Python スクリプトから PHP に SSE バインド データを取得する必要があることですが、それは SSE PHP スクリプトが実行されている場合のみです。また、SSE PHP スクリプトの新しいインスタンスが各クライアントで作成されると思います。そのため、Python と PHP の比率が 1:1 になることさえありません。SSE PHP に MySQL データベースを監視させることを考えましたが、それは基本的にポーリングに戻りますが、非常に頻繁にポーリングされる可能性があります。
あるいは、SSE PHP スクリプトでシリアル ポートを監視できると考えていましたが、シリアル データは 1 回しか読み取れないので、複数のスクリプトがデータを求めて競合し、これも機能しません。
着信データをデータベースに保存し、SSE をトランスポート層として使用するという 2 つの目標を達成する最善の方法は何ですか?