IM即時通訊(Instant Messaging)是一種基于互聯(lián)網(wǎng)的即時交流消息的業(yè)務(wù)。調(diào)研數(shù)據(jù)顯示:市面上60%以上的APP擁有即時通訊能力,用戶可以直接在app內(nèi)跟其他用戶實時聊天,有助于提升app活躍和用戶體驗。IM功能的實現(xiàn)已成為應(yīng)用開發(fā)者們必修課程。
IM即時通訊開發(fā)的3種實現(xiàn)方式分別為:
1、IM即時通訊開源代碼
2、IM即時通訊自研
3、集成IM即時通訊 SDK。
開發(fā)者可根據(jù)項目情況進行選擇,這篇文章我們介紹第三種方式:集成IM即時通訊 SDK。
即時通訊sdk哪一個好?
當前市面上已經(jīng)有不少成熟的IM 即時通訊SDK廠商,在這里推薦一家不錯的廠商--即構(gòu)科技。之前開發(fā)的直播產(chǎn)品接了即構(gòu)的RTC SDK,整個接入過程很順暢,近期因項目需實現(xiàn)即時通訊功能,同一廠商圖方便抱著嘗試態(tài)度接入ZEGO IM SDK,沒想到很快就完成開發(fā)實現(xiàn)了。
4步輕松實現(xiàn)IM即時通訊消息收發(fā)
1、初始化 IM SDK
獲得一個 ZIM 實例
zim = ZIM.create(appID, application);
2、登錄ZIM SDK
類比微信賬號登錄的操作,用來作為收發(fā)消息的載體
void login(ZIMUserInfo userInfo,String token,ZIMLoggedInCallback callback)
3、發(fā)送端調(diào)用發(fā)送單聊文本消息
登錄后便可調(diào)用該接口,在 message 填上想要發(fā)送的消息,在 toUserID 填上接收端的 userID,想要發(fā)送時調(diào)用即可
接口展示:
void sendPeerMessage(ZIMMessage message,String toUserID,ZIMMessageSendConfigconfig,ZIMMessageSentCallback callback)
4、IM接收端收消息
(1) 通過 setEventHandler 注冊事件回調(diào)的接收對象
IM 運行過程中會有各式各樣的事件產(chǎn)生:收到了一條消息、網(wǎng)絡(luò)連接中斷等,通過該接口便可以接收 ZIM 拋出的事件,以便 App 做出相應(yīng)的反應(yīng)。
void setEventHandler(ZIMEventHandler handler)
(2) 在注冊事件回調(diào)的接收對象中重寫接收單聊消息的方法
zim.setEventHandler(new ZIMEventHandler() {
@Override
public void onReceivePeerMessage(ZIM zim, ArrayList<ZIMMessage> messageList, String fromUserID) {
}});
由此我們實現(xiàn)了一對一聊天的文本消息的收發(fā)。
By the way, ZIM SDK 也支持富媒體消息的收發(fā),包括圖片、視頻、音頻和文件。發(fā)送富媒體消息時只需要將文件的 path 傳入接口,上傳進度可從 progress 回調(diào)中獲得。
此外 ZIM SDK 還支持房間、群組的用法,無需去二次封裝,繪制相關(guān) UI 并使用 SDK 接口提供的數(shù)據(jù)驅(qū)動即可實現(xiàn)對應(yīng)功能。同時ZIM SDK結(jié)合即構(gòu)自家的RTC 音視頻 SDK實現(xiàn)各類音視頻場景的用戶互動,適合Avatar , 直播,語聊房等場景的開發(fā)者和有需求企業(yè)。近期有開發(fā)規(guī)劃的開發(fā)者可上即構(gòu)官網(wǎng)查看。