2016-09-18 69 views

回答

0

優秀的問題!最近我正在寫這個serversync package,我正在試驗這個。我發現是這樣的:

如果未達到DDP平的超時時間,即斷開只有非常簡短:

     照常營業,沒有事件發生。我相信客戶端的默認DDP ping超時是30秒。

否則:

  1. 只要你使用包自動發佈在服務器上,客戶端將再次重新連接時不火了observeChanges處理程序。 如果您使用自動發佈功能,那麼added事件將爲集合中的每個文檔觸發。

  2. 你可能會有興趣知道的是,引擎蓋下,DDP 在每次重新連接,即發送added消息給客戶端,每個DDP重新發送收集的完整副本。無論您是否使用自動發佈,都會發生這種情況。然而,客戶似乎足夠聰明,知道他已經擁有哪些文件,所以他不會爲他已有的文件啓動實際的事件,只會爲新文件,已更改文件和已刪除文件啓動。如果您預計存在大量斷開連接,DDP的這種行爲仍然可能與您有關,因爲它會大大增加您的網絡流量 - 特別是在發佈大型館藏時。我相信這是下面的註釋中docs of onConnection一個衍生物:

目前當客戶端重新連接到服務器(如後暫時失去其互聯網連接),它每次都會得到一個新的連接。 onConnection回調將被再次調用,並且新連接將有一個新的連接ID。

將來,當客戶端重新連接完全實現時,從客戶端重新連接將重新連接到服務器上的同一連接:onConnection回調將不會再次被連接調用,並且連接仍將具有相同的連接連接ID。

希望這會有所幫助!

+0

確實有幫助!這聽起來像observeChanges機制旨在容忍網絡問題?即回調在邏輯上排隊等待鏈接起作用。有沒有Meteor文檔解決這個問題? –

相關問題