您好
Windows Phone應用程序需要連接到服務器並從中獲取消息。這是使用WCF和服務器上的長輪詢完成的。 3分鐘是服務器上定義的超時時間。來自Windows Phone的呼叫是使用HttpWebRequest完成的。
問題是,Windows Phone設備的獲取請求(模擬器具有不同的值,大於3分鐘)的超時時間爲60秒。
目前我無法減少服務器超時。在60秒後執行新的GetRequest不會再收到消息。
有沒有人有想法?
謝謝長查詢Windows Phone 60秒TimeOut
4
A
回答
3
我不認爲打開連接是移動設備上的一個好主意。我假設你在做什麼。在我的應用程序中,我只需通過創建新的HttpWebRequest來進行輪詢。但在我的應用程序中這樣做是有道理的,因爲我會每40秒更新一次列車到達狀態。
如果您試圖按照給定的計劃提取數據,請將計時器放入,然後每隔3分鐘或每隔一段時間調用Web服務器。
如果您希望能夠檢查某些事情(應用程序關閉時)或者服務器上很少有新數據,那麼您需要實現一個Push機制。
更新:下面是關於處理超時問題的好文章 - http://blog.xyzzer.me/2011/03/10/real-time-client-server-communication-on-windows-phone-with-long-polling/
更新2:如果你安排好了,這樣,你級聯連接 - 我的意思是,因爲你可以」每次連接超過60秒時,您可以編寫一個可容納兩個連接的課程,並且一旦其中一個即將超時(比如幾秒鐘前),您可以開始打開其他連接 - 您可以選擇時間,以便它們之間至多有5秒的重疊。這樣你就可以始終打開連接。
另請參閱這些人使用GChat應用程序所做的工作,他們的源代碼位於link。這可能會提供更合適的設計。
相關問題
- 1. WebClient TimeOut Windows Phone 8
- 2. 了nanosleep睡眠60微秒太長
- 3. Windows Phone 7查詢背景
- 4. HttpWebRequest.BeginGetResponse塊30-60秒
- 5. 'Time.at(秒)' 給出不同的時間 '的級分(秒/ 60,秒%60)'
- 6. Windows Phone - 訪問DataContext需要長達4秒
- 7. MySQL查詢非常慢(20到60秒!) - 爲什麼?
- 8. AJAX查詢每次精確失敗60秒
- 9. 如何處理60秒的超時查詢
- 10. 60秒後MsmqException(0xC00E0051)
- 11. clearInterval(myTimer);爲60秒
- 12. 無法在60秒
- 13. 從60秒倒數
- 14. 延長$ timeout
- 15. 簡單的MySQL查詢16秒長
- 16. 使用長毫秒的Mongodb查詢
- 17. Windows Phone 7的URI太長
- 18. 停留在「CURLOPT_URL」 60秒
- 19. 延遲彈出60秒
- 20. 查詢/在Windows Phone應用程序
- 21. Windows Phone 8應用內購買查詢
- 22. Windows Phone 7和8 TextBlock查詢
- 23. 查詢取舊數據的Windows Phone 8
- 24. Windows Phone 7 xml linq查詢問題
- 25. 60秒後Google Cloud SQL的DeadlineExceededError
- 26. 長插入查詢
- 27. 約60秒GAE限制?
- 28. 跳隙每60秒 - 在cmd
- 29. PHP腳本執行兩次時長超過60秒
- 30. 長輪詢 - 某些秒
我已經看到了這篇文章,這個例子使用超時時間爲50秒,在這種情況下沒有問題。我無法在我的應用程序中確定消息在服務器上何時可用。它就像一個聊天應用程序,所以我總是需要檢查是否發送了新消息,所以長時間輪詢比進行大量獲取操作要好。 – Morti 2012-04-02 09:00:16
我認爲這是設計。移動連接不應長時間保持開放/閒置狀態。你最好的選擇是Push。在這裏看到更多的信息:http://msdn.microsoft.com/en-us/library/ff402537(v=vs.92).aspx – 2012-04-03 05:57:08
不能使用推,因爲我說它就像一個聊天消息,我不能有超過2秒的延遲。爲了更具表現力,它就像一個Siri應用程序,需要非常快速地響應,此外,這個應用程序不僅僅在windows phone上,所以實現推送通知系統需要第三次完成此操作,並且需要更多時間才能獲得響應。 – Morti 2012-04-03 07:38:22