您好
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. HttpWebRequest.BeginGetResponse塊30-60秒
- 2. 'Time.at(秒)' 給出不同的時間 '的級分(秒/ 60,秒%60)'
- 3. Windows Phone - 訪問DataContext需要長達4秒
- 4. MySQL查詢非常慢(20到60秒!) - 爲什麼?
- 5. AJAX查詢每次精確失敗60秒
- 6. clearInterval(myTimer);爲60秒
- 7. 無法在60秒
- 8. 使用長毫秒的Mongodb查詢
- 9. 查詢/在Windows Phone應用程序
- 10. 延遲彈出60秒
- 11. 60秒後Google Cloud SQL的DeadlineExceededError
- 12. 長插入查詢
- 13. 我的SQL查詢非常慢(60秒),任何人有想法改進?
- 14. SQL Server查詢隨着時間的推移從0降低到60毫秒
- 15. MySQL只插入查詢慢(恰恰是60秒),只針對某些表
- 16. 長查詢webservice
- 17. 停止異步任務後60秒
- 18. MySQL新加入的查詢需要太長的子查詢
- 19. Windows Phone 8.1 PDF查看器
- 20. 拼寫檢查Windows Phone的
- 21. Windows Phone的功能檢查
- 22. 如何使wait_event_timeout函數的timeout = 1秒?
- 23. 查詢查詢運行超過5秒
- 24. 查看更改僅在60秒後反映在Laravel中
- 25. 如何提高GPS輪詢率在Windows Phone 7
- 26. 慢查詢長查詢響應時間
- 27. 論壇提交60秒時限
- 28. 每60秒編程一次'按'按鈕
- 29. NSURLConnection GET 60秒超時最大值?
- 30. 計時器在60秒後重置
我已經看到了這篇文章,這個例子使用超時時間爲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