2017-11-08 52 views
0

私はASP.Net WebフォームアプリケーションをAzure Cloudで実行しています。今、私は解決方法がわからないという特別な要求があります。サーバーはインターネット経由での接続を受け入れてのAndroidクライアントにしてから、その接続を開いたまま(またはスタンバイして)長時間(日) 。 数時間または数日後に、サーバーはAndroidクライアントと通信してデータを送信する必要があります。私はどちらの技術も両方のパートナーに使用できますが、インターネットは中間にあるため、http/httpsがプロトコルとして優先されます(TCPエンドポイントを持つWCFはクライアントによって接続が開始されたときも機能します)。私が考えることができるのは、利用可能なコマンド/データがある場合、クライアントがサーバーを常にポーリングすることですが、その解決策は醜いものであり、多くのリソースを無駄にします。クライアントは、サーバーが何かする必要があるときに数秒以内に反応する必要があります。したがって、〜10秒間のポーリング間隔を使用する必要があります。私はhttp "keep alive"が存在し、C#WebClientで利用できることを知っていますが、それが自分の要件を満たしているかどうか疑問です。これを達成する他の可能性はありますか?ASP.Net:Androidクライアントとの一定の通信チャネル

+0

FCMのダウンストリームメッセージについて聞いたことがありますか? –

+0

いいえ、私はまだ見ていません、私はそれを見ていきます。一見すると、私はクライアントに賢明なデータを送る必要はないので、有効なオプションかもしれません。私は彼らがどのようにアプリケーションからGoogleサーバーへの接続を開いたままにしているのだろう... – Cleo

+0

UはFCMのサーバー側の実装を行う必要があります。私。残りのコールを使用し、インスタンスIDを使用してデバイスにデータを送信します。 –

答えて

0

Nirajの回答に基づき、Google Firebase Cloud Messagingが見つかりました。その後、XMPPプロトコルと.Netで利用可能なSignalRテクノロジを読み、最終的には実装が最も簡単で、サードパーティの関与を必要としないため、SignalRを使用することにしました。

関連する問題