默認
發表評論 5
想開發IM:買成品怕坑?租第3方怕貴?找開源自已擼?盡量別走彎路了... 找站長給點建議
[已回復] 求助為MobileIMSDK的移動客戶端發送消息增加時間戳的問題
閱讀(714) | 評論(5 收藏 淘帖1
因為移動客戶端發消息時,帶的時間是系統時間,如果當前的系統時間被修改,比如 修改成2012年的時間,那么對方用戶在排序消息的時候會出錯,請問有沒有什么方法解決這個問題呢?我本來是想要在服務端改的,但是服務端是在消息已經發送到對方的時候才有回調函數可以存儲消息記錄的,所以不知道有什么好的解決方案,還請大佬帶一帶,非常感謝

即時通訊網 - 即時通訊開發者社區! 來源: - 即時通訊開發者社區!

標簽:MobileIMSDK
上一篇:[已回復] 求助關于MobileIMSDK服務端離線消息重復存儲的問題下一篇:[已回復] MobileIMSDK發成功,回調messagesBeReceived中如何判斷對應是哪條UI上的消息?

本帖已收錄至以下技術專輯

推薦方案
評論 5
如果你要這么考慮的話,有一個最保險的方法,那就是每條消息經過服務端中轉時,為它加一個由服務端產生的時間戳。

如果要在服務端加時間戳,則 只需要修改兩個地方:

  • 1)在Protocal這個協議包對象里(所有的消息都是用它來封裝和傳遞的,這個應該理解吧)加一個時間戳字段;
  • 2)在ServerCoreHandler里,在 messageReceived 方法里,為收到的任何消息Protocal對象的時間戳字段進行賦值。

以上完成后。你的每條消息 Protocal對象,都會有這個服務端生成的時間戳了,至于你應用層怎么用這個時間戳,sdk這一級就不用管了,你就繼續在應用層去使用就好了。

記住,在嘗試進行以上代碼修改前,先大致讀一讀MobileIMSDK的源碼,雖然加時間戳很簡單,也不需要什么全局邏輯,但通讀一下代碼,你也就能更放心地去改了,我是這個意思,沒別的復雜事情。
簽名: 《主流移動端賬號登錄方式的原理及設計思路》http://www.uktmgv.tw/thread-2863-1-1.html
引用:JackJiang 發表于 2019-11-11 12:17
如果你要這么考慮的話,有一個最保險的方法,那就是每條消息經過服務端中轉時,為它加一個由服務端產生的時 ...

好的,非常感謝
引用:JackJiang 發表于 2019-11-11 12:17
如果你要這么考慮的話,有一個最保險的方法,那就是每條消息經過服務端中轉時,為它加一個由服務端產生的時 ...

但是,這樣的話,移動客戶端的源碼是不是也要修改?
引用:wzq1915414095 發表于 2019-11-11 12:57
但是,這樣的話,移動客戶端的源碼是不是也要修改?

移動端改個毛,只要把Protocal.java更新給他就好了,不然它就讀不到新加的字段。這些沒什么復雜的,你理解一下代碼。
簽名: 《主流移動端賬號登錄方式的原理及設計思路》http://www.uktmgv.tw/thread-2863-1-1.html
引用:JackJiang 發表于 2019-11-11 15:02
移動端改個毛,只要把Protocal.java更新給他就好了,不然它就讀不到新加的字段。這些沒什么復雜的,你理 ...

好的,非常感謝
打賞樓主 ×
使用微信打賞! 使用支付寶打賞!

返回頂部
曾氏料二肖中特