如何在App中實現IM功能之七快速實現聊天列表排序模組——箭扣科技Arrownock

來源:互聯網
上載者:User

標籤:android   使用者   如何   

如何在App中實現IM功能之七快速實現聊天列表排序模組

 

一台裝置由於使用者的使用習慣差異,可能導致裝置的時間和實際收發訊息的時間不同,這裡與大家分享利用anIM收發訊息時,如何根據資料中的msgId和timestamp來進行排序。

 

實現邏輯

發訊息時,我們需要調用anIM的sendMessage方法(同類方法還有sendBinary, sendMessageToTopic等等),這個方法有一個返回資料為messageId,即當前這一條聊天訊息的唯一標識,我們需要將這個messageId儲存下來。

 

以iOS代碼為例:


    //msgId是訊息的唯一標識    NSString *msgId = [anIM sendMessage:message    customData:customData    toClients:clientId    needReceiveACK:YES];



調用完sendMessage方法後,SDK會統一回調messageSent方法,這個方法裡的輸入參數在Android SDK中是AnIMMessageSentCallbackData,裡麵包含兩個主要欄位分別為String類型的msgId和long型的timestame,而在iOS SDK中是NSString類型的msgId和NSNumber類型的timestamp。


    (void)anIM:(AnIM *)anIM messageSent:(NSString *)messageId at:(NSNumber *)timestamp    {        //messageId即調用sendMessage等方法時返回的訊息唯一標識        //在這雷根據messageId進行訊息的判斷,然後儲存聊天訊息資料到本機資料庫    };



收訊息時,對不同類型的訊息,會執行不同的方法,不管是哪個方法,方法的輸入參數裡都會有2個和發訊息時同樣的欄位msgId和timestamp。


    (void)anIM:(AnIM *)anIM didReceiveMessage:(NSString *)message customData:(NSDictionary *)customData from:(NSString *)from parties:(NSSet *)parties messageId:(NSString *)messageId at:(NSNumber *)timestamp    {        //messageId即對方發送訊息時的訊息唯一標識    }



timestamp是13位的時間戳記格式,都是從伺服器返回的,而不是裝置本地產生的,這樣就避免了因為使用者本身的使用習慣而導致收發訊息時的順序錯亂了。最後,根據timestamp欄位進行排序,但是別忘了介面顯示時需要轉換一下。

 

如何在App中實現IM功能系列文章:

之一離線訊息常見淺析

之二快速實現離線訊息模組

之三快速實現離線訊息推送模組

之四建立穩健的訊息發送模組

之五快速實現圖片接收和發送

之六快速實現群聊的進階功能

之七快速實現聊天列表排序模組

 



本文出自 “箭扣科技Arrownock” 部落格,轉載請與作者聯絡!

如何在App中實現IM功能之七快速實現聊天列表排序模組——箭扣科技Arrownock

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.