WebSocketを使用する場合は、クライアントからの通知を使用する必要があります。それが彼らの主なユースケースの1つです。
接続の切断やその間の変更による不整合が心配な場合は、 HTTP ETags 、クライアントは、更新で競合が発生した場合にサーバー側で応答できるハッシュコードを送信します。
更新:私はあなたの最初の問題を少し間違って理解したと思います。私があなたのユースケースを正しく理解している場合:あなたはクライアントからデータベースの更新を送信しており、その後、接続されているすべてのクライアントを更新する必要があります。その場合、サーバーはDBの更新が完了した後に更新メッセージを送信する必要があると思うので、ソリューション4に同意します。ここでは、WebSocketサーバーがPHPを実行してDBの更新を行っているサーバーと同じであると想定しています。
ただし、ユースケースによっては、クライアントは「世界観」を識別する次のリクエストでハッシュ値を送信する必要があるため、接続が切断された場合に同じ更新を複数回行うことはありません。
アップデート2:これで、実際に別のスタンドアロンWebSocketサーバーを使用していることがわかりました。基本的に、サーバー側に2つの異なるWebサーバーがあり、2つの間で通信する方法に問題があります。これは実際の問題であり、一度に1台のサーバーのみを使用することをお勧めします。
PHPもApacheも、実際にはWebSocketを念頭に置いて構築されたものではありません。 PHPのみを使用してスタンドアロンのWebSocketサーバーをセットアップするのは非常に簡単ですが、コードがApache / Webサーバーに依存している場合は、残りのPHPスタックをそのサーバーに移行するのはそれほど簡単ではない可能性があります。 ApacheWebSocketのサポートもほとんど最適ではありません。実際のWebSocketソリューションの場合、残念ながら、ベストプラクティスは、ゼロから構築されたテクノロジーを使用することです。