1

現在、REST API で Web アプリケーション (LAMP スタック) を使用して、クライアント (Python デスクトップ アプリケーション) と通信しています。

クライアントはサーバーに登録し、REST API を介して状態をサーバーに送信できます。

ここで、Web アプリケーション (サーバー) から選択したクライアントに通知をプッシュする必要があります。

私の質問は、サーバー (php) からプッシュ通知を送信し、クライアント (python) からそれを読み取る方法です。

4

2 に答える 2

2

これには多くの方法がありますが、ほとんどの場合、サーバーとクライアントの間である種の持続的な接続が必要になります。

デスクトップ クライアントが HTTP 経由で通信する場合は、Server Sent Eventswebsocketsを使用するか、ロング ポーリングを実装して通知をプッシュすることができます。

プッシュ通知を提供するサードパーティのサービスを使用することもできます。

于 2013-07-18T10:33:03.933 に答える
1

したがって、基本的には、一定の間隔でクライアントからサーバーにクエリを実行し、(interval ~ 0 == realtime)ニュースがあるかどうかを尋ねることができます。

通常、apache はスレッド/フォーク リクエスト処理モデルのため、長時間待機する接続を処理できません。

nginx はソケットの多重化 (select/epoll/kqueue) を使用しているため、nginx への切り替えを試すことができます。これにより、多くの同時待機接続を処理できます)。

または、node.js について考えて、php アプリをそれに置き換えることもできます。これは、この目的のために完全に行われます。

素敵な解決策が多すぎますweb framework/language + redis pub/sub functionality + node.js。通常は Web アプリケーションをリクエストできますが、node.js サーバーへの接続がオープンすぎると、node.js サーバーは必要に応じてクライアントに通知します。一部のクライアントに通知することについて node.js に伝えたい場合は、web アプリから redis pub/sub を介して行うことができます。

于 2013-07-18T09:36:20.880 に答える