ユーザーがPHP経由で接続できるようにしたい.net winformアプリケーションがあります。
私は個人的な選択で PHP を使用しており、コストを低く抑えるために使用しています。
簡単な概要:
人々は私の .net アプリに接続し、ブラウザーを閉じた後も実行を継続する新しいスレッドを開始できます。その後、いつでもログインして、スレッドの実行状況を確認できます。
現在、私はこれを行う2つの方法を考え出しました:
アイデア 1 - ソケット:
ユーザーが初めて接続してスレッドを生成すると、GUID が「Web」ログインの詳細に関連付けられます。
次に PHP がソケット経由でアプリに接続すると、PHP は GUID を含む「GET.UPDATE」コマンドを送信します。このコマンドは、指定された GUID の MESSAGE IN QUEUE に追加されます。
.net アプリによって生成されたスレッドは、MESSAGE IN QUEUE をチェックしており、「GET.UPDATE」コマンドを確認すると、データを json にエンドコードし、MESSAGE OUT QUEUE に追加します。
次にその GUID から PHP ソケット要求があると、MESSAGE OUT QUEUE でデータが送信されます。
アイデア 2 - データベース:
上記と同じアイデアですが、PHP からのコマンドはデータベースに入れられます
.net アプリ スレッドは、データベース内の新しい IN MESSAGES をチェックします
GET.UPDATE コマンドを取得すると、json でエンコードされたデータがデータベースに追加されます。
次に PHP が接続すると、データベースに新しいメッセージがあるかどうかがチェックされ、それに応じてデータが報告されます。
上記の2つのアイデアのどちらが最適かを考えてみました。ソケットをいじると、すぐに苦痛になる可能性があります。しかし、数千人のユーザーがいる場合、キューに大量のメッセージがあるとデータベーステーブルが遅くなり始める可能性があるというデータベースのアイデアが心配です
どんなアドバイスも適用されます。