根據http://cumulocity.com/guides/reference/real-time-notifications/,啓動用於接收實時通知的握手的客戶端可以在其請求主體中包含建議。這個建議可以有一個超時(「以毫秒爲單位最大時間一個連接消息,並從服務器響應的發送之間。」)和間隔(「期間,高於該服務器將關閉會話,如果沒有接收到下一個從連接消息客戶。」)。我不明白這些參數以及它們如何適用於我的長輪詢連接。在Cumulocity實時通知中使用「建議」
- 爲什麼服務器會對客戶端用於連接呼叫的超時感興趣?它應該立即發送通知(即「實時」)。正如預期的那樣的確如此。即使當我指定一個非常短暫的超時時間,但實際上爲連接使用了更長的超時時間時,我仍然會收到這兩個時間點之間發生的通知,而沒有任何問題。當我指定很長的超時時間時,我會立即收到通知。這對延遲通知是有意義的,但我沒有在文檔中看到這些提及。那麼這個價值是什麼意思?
- 間隔是什麼意思?如果我指定一個短的時間間隔,但等待兩個更長的時間之間連續接通呼叫,那麼服務器不不「關閉會話」,如果這意味着我的clientID的失效,我需要做一個新的握手。也許這只是保證的最短時間,服務器必須保持會話?即客戶端希望被允許在連接之間等待的最長時間[並且等待時間更長可能或者可能不起作用,在服務器的判斷中]?也不是實際清除隊列之後的時間,因爲如果我在未連接時觸發通知,並且在間隔時間過後重新連接,那麼該通知仍可以正常傳送。
如果我們比較,爲SmartREST通知我們看到有它應該以相反的方式,其中,恕我直言,更有意義的工作:服務器發送建議到客戶,告訴它應該如何配置它自己。在這種情況下,意義可能仍然是有些模糊,但至少處理可能會更直接(=只是做作爲服務器建議):
- 超時:請不要使用較長的超時,因爲服務器沒有按」 t要保持連接的打開時間超過X.請勿縮短超時時間,因爲服務器可能需要X時間才能生成響應的所有通知。
- 間隔:由於服務器內部通知分配甚至不跑那麼快不重新連接於Y快。在重新連接之前不要等到比Y更長的時間,因爲內部隊列不會緩存通知的時間超過Y.(在CometD參考中,這兩個名稱分別爲區間和maxInterval,所以很明顯它們是獨立的。)
爲什麼「建議方向」相反的兩種情況?我應該如何(如果有的話)使用建議進行定期的實時通知握手?
非常感謝有這方面的澄清。