こんにちは
Windows Phoneアプリケーションはサーバーに接続し、そこからメッセージを取得する必要があります。これは、サーバー上でWCFとロングポーリングを使用して行われます。 3分はサーバーで定義されたタイムアウトです。 Windows Phoneからの呼び出しは、HttpWebRequestを使用して行われます。
問題は、Windows Phoneデバイスの取得要求が60秒(エミュレータの値が異なる(3分以上))のタイムアウトがあることです。
現在、私はサーバーのタイムアウトを減らすことはできません。 60秒後に新しいGetRequestを実行してもメッセージは消えません。
アイデアがありますか?
ありがとうロングポーリングWindows Phone、60秒TimeOut
4
A
答えて
3
モバイルデバイスでは、接続を開いたままにしておくことをお勧めします。私はそれがあなたがやっていることだと仮定しています。私のアプリでは、新しいHttpWebRequestを作成するだけで、いつでも必要なときにポーリングします。しかし、私は40秒ごとに列車の到着ステータスを更新するので、私のアプリでこれを行うには意味がありました。
特定のスケジュールでデータを取得しようとしている場合は、タイマーを設定して3分ごとにWebサーバーを呼び出します。
アプリを閉じているときにチェックできるようにしたい場合や、サーバーに新しいデータがほとんどない場合は、プッシュメカニズムを実装する必要があります。
更新:ここでタイムアウトの問題に対処する上で良い記事だ - http://blog.xyzzer.me/2011/03/10/real-time-client-server-communication-on-windows-phone-with-long-polling/
アップデート2:ようにあなたがそれを配置した場合、あなたは接続をカスケード接続している何を - 私は何を意味することは、可能であるためです」接続ごとに60秒を超える時間があれば、2つの接続を収容するクラスを作成することができます。その1つがタイムアウトすると、数秒前に他の接続を開くことができます。それらの間で最大でも5秒間重なります。あなたはいつも開いている接続を持つことができますこのように。
また、GChatアプリでこれらの人たちが何をしたのかを見ると、ソースコードはlinkで利用可能です。これは、より適切な設計を提供することができる。
関連する問題
- 1. 60秒の遅延対60秒の遅延aws-lambda/RDSエラーメッセージ?
- 2. カウントダウンタイマー秒数が60秒を超える
- 3. にnanosleepスリープ60マイクロ秒
- 4. 〜60秒後のMagentoカールエラー503
- 5. FirefoxDriverを作成しようとすると60秒後にSelenium Timeoutが発生する
- 6. 実行時間60秒後にWebhookが "Read timeout expired"エラーに遭遇しました
- 7. Androidチャットとロングポーリング
- 8. プログラムで「press」ボタンを60秒ごとに
- 9. アンドロイドスタジオ、自動リフレッシュデータjson url 60秒ごと
- 10. 、40ミリ秒または60ミリ
- 11. WIndows Phone 7.1 SDKとWindows Phone 7.5 SDK
- 12. タイムフィルタが60秒以上70秒未満で動作しない
- 13. WindowsのBazel:エラー:60秒後にサーバーに接続できませんでした
- 14. Windows 8&Windows Phone 8
- 15. デスクトップアプリケーション(Windowsアプリ)Windows Phone
- 16. 60秒から1秒の経過秒数を表示したい
- 17. Windows Phoneタイルイメージ
- 18. Windows phone 7メッセージボックスサウンド
- 19. Windows Phone 7.5エミュレーションカメラ
- 20. Windows phoneオートメーションテストソリューション
- 21. Windows Phoneレイヤー
- 22. ラジオストリーミングWindows Phone
- 23. windows phone 7、ボタンテンプレートイメージソースバインディング
- 24. Windows Phone 7クラッシュ
- 25. Windows phone Microsoft.Phone.Media.Extended.dllファイル
- 26. スタートボタン(Windows Phone)
- 27. Windows Phone 7スペルチェックテキストボックス
- 28. IsolatedStorage Windows phone 8
- 29. Windows Phone 7 Developer
- 30. Azure + Windows phone 7
私は既にこの記事を見ており、このサンプルでは50秒のタイムアウトを使用しています。この場合は問題ありません。私のアプリでは、メッセージがサーバー上でいつ利用可能かを判断することができません。チャットアプリのようなものなので、新しいメッセージが送信されたかどうかを常に確認する必要があります。 – Morti
これは設計によるものだと思います。モバイル接続は長時間オープン/アイドル状態にしないでください。あなたはプッシュがベストです。詳細についてはこちらをご覧ください:http://msdn.microsoft.com/en-us/library/ff402537(v=vs.92).aspx –
プッシュは使用できません。チャットメッセージのようなものです2秒以上の遅延を持つことはできません。より表現力豊かにするには、非常に速く応答する必要のあるSiriアプリのようなものです。さらに、このアプリはWindows Phoneだけではないため、プッシュ通知システムを実装するには3回目を実行する必要があり、応答に時間がかかります。 – Morti