2015-11-04 23 views

回答

2

首先,一些澄清是爲了。請注意,sendMessage()將以單個節點爲目標,而putDataItem()將導致整個網絡中的數據同步。因此,爲了使問題更加精確,我假設您正在談論的是我們正在查看sendMessage()所針對的單個節點的情況,同時也是在我們正在查看數據更改的同一節點上。另外,我將假設在調用onMessageReceived()和onDataChanged()時測量到達該節點。因此,讓我們來看看你的問題:

  1. putDataItem()delivery和sendMessage()交付發生在兩個不同的通道上,所以它們之間沒有保證的順序。
  2. 對於通過sendMessage()傳遞的消息,無論在兩個終端節點之間有直接連接還是在兩個終端節點之間有一些跳躍,都會保證順序被保留。
  3. 對於putDataItem(),訂單被保留,但您需要注意的是,當您更新同一項目時,您可能會看到可能的onDataChanged()調用比putDataItem()更少;當一個項目被添加,然後更新,然後再次更新,一些中間回調可能被跳過,但最終回調保證反映淨變化和兩個不同的數據項目,訂單被保留。

希望這回答你的問題。

相關問題