こんにちは
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. 、40ミリ秒または60ミリ
- 2. プログラムで「press」ボタンを60秒ごとに
- 3. 60秒から1秒の経過秒数を表示したい
- 4. WIndows Phone 7.1 SDKとWindows Phone 7.5 SDK
- 5. Windows 8&Windows Phone 8
- 6. デスクトップアプリケーション(Windowsアプリ)Windows Phone
- 7. ロングポーリングをset_time_limit()
- 8. timeout> 2の場合、常に*が1秒以上かかる
- 9. ダイアログは60秒以内に利用できません
- 10. androidの更新頻度を常に60秒に設定
- 11. MySQLクエリは60秒ごとに再起動しますか?
- 12. GAEの制限は約60秒ですか?
- 13. ドロップダウンリストWindows Phone 7
- 14. Windows Phone 7スニファ
- 15. Windows Phoneレイヤー
- 16. スタートボタン(Windows Phone)
- 17. windows phone 7バックグラウンドエージェント
- 18. Windows Phone 7(C#)
- 19. Windows Phone 8タイルサイズ?
- 20. Windows Phone Hold Gesture
- 21. Windows Phone 7ダイナミックリストボックステンプレート
- 22. Windows Phoneスプラッシュスクリーンポップアップ
- 23. のWindows Phone filepicker
- 24. Windows Phone 7レスポンスリダイレクト
- 25. Windows phone 7ジャンプリストコントロール
- 26. Windows Phone 7モッキングフレームワーク?
- 27. Windows Phone 7クラッシュ
- 28. Windows phone Microsoft.Phone.Media.Extended.dllファイル
- 29. Windows Phone 7-System.ArgumentOutOfRangeException
- 30. ローカルデータベースWindows Phone 7
私は既にこの記事を見ており、このサンプルでは50秒のタイムアウトを使用しています。この場合は問題ありません。私のアプリでは、メッセージがサーバー上でいつ利用可能かを判断することができません。チャットアプリのようなものなので、新しいメッセージが送信されたかどうかを常に確認する必要があります。 – Morti
これは設計によるものだと思います。モバイル接続は長時間オープン/アイドル状態にしないでください。あなたはプッシュがベストです。詳細についてはこちらをご覧ください:http://msdn.microsoft.com/en-us/library/ff402537(v=vs.92).aspx –
プッシュは使用できません。チャットメッセージのようなものです2秒以上の遅延を持つことはできません。より表現力豊かにするには、非常に速く応答する必要のあるSiriアプリのようなものです。さらに、このアプリはWindows Phoneだけではないため、プッシュ通知システムを実装するには3回目を実行する必要があり、応答に時間がかかります。 – Morti