2016-08-01 69 views
0

在我的應用程序中,我使用PubNub渠道來閱讀郵件。如何從應用程序註銷時刪除Pubnub頻道歷史記錄?

我得到歷史有兩種狀態:

.PNReconnectedCategory 
.PNConnectedCategory 

我得到歷史像這樣:

if let lastOpenedDate = NSUserDefaults.standardUserDefaults().objectForKey(PubNubModel.lastHistoryFetchKey) as? NSDate { 

     let endDate = NSNumber(double:lastOpenedDate.timeIntervalSince1970) 

     if UserHistoryChannel != nil { 

      self.client?.historyForChannel(UserHistoryChannel!, start: nil, end: endDate, withCompletion: getHistoryCompletionBlock) 
     } 
} 

lastOpenedDate是上次接收消息的日期,並

在獲得歷史我經常檢查它,並從此日期和之後獲取歷史記錄。

註銷我將此日期設置爲零,所以當用戶登錄到應用程序和Pubnub連接時,獲取歷史記錄時,此日期將是當前日期,並且不會有歷史記錄。

但是,pubnub仍然收到舊的歷史!

任何人都試圖清除pubnub頻道的歷史記錄?

任何幫助pleasssse?

謝謝,

+0

您最好根據用戶/設備信息使用唯一的機會名稱 –

+0

不知何故,'endDate'沒有得到零或重置到最後一次歷史記錄調用時間,但我認爲您正在接近這是錯誤的,你應該是stor將每個消息的發佈時間標記本地發送到設備。當設備重新連接時,使用最後一條消息timetoken獲取歷史記錄(將其用作'endDate'值)。 –

+0

@CraigConover謝謝,但你是什麼意思的: 「當設備重新連接時,使用這最後一條消息timetoken獲取歷史記錄(使用它作爲endDate值)」 你能給我更多的細節嗎? 謝謝 – Rawan

回答

0

歷史API允許指定您想要從中獲取消息的時間範圍。如果您將存儲並且永遠不會重置爲nil(因爲它將被視爲最後收到的消息)時間令牌(message.data.timet‌​oken)並將其作爲endDate與歷史記錄API一起使用(如@CraigConover所建議的) - 使用此設置歷史記錄將從中獲取最後的消息(包括來自哪個日期的消息),使用這種方法不會從上次應用程序運行時獲取應用程序和用戶所知道的數據,記錄的新用戶將不會收到來自

相關問題