IM即时通讯(Instant Messaging)是一种基于互联网的即时交流消息的业务。调研数据显示:市面上60%以上的APP拥有即时通讯能力,用户可以直接在app内跟其他用户实时聊天,有助于提升app活跃和用户体验。IM功能的实现已成为应用开发者们必修课程。
IM即时通讯开发的3种实现方式分别为:
1、IM即时通讯开源代码
2、IM即时通讯自研
3、集成IM即时通讯 SDK。
开发者可根据项目情况进行选择,这篇文章我们介绍第三种方式:集成IM即时通讯 SDK。
即时通讯sdk哪一个好?
当前市面上已经有不少成熟的IM 即时通讯SDK厂商,在这里推荐一家不错的厂商--即构科技。之前开发的直播产品接了即构的RTC SDK,整个接入过程很顺畅,近期因项目需实现即时通讯功能,同一厂商图方便抱着尝试态度接入ZEGO IM SDK,没想到很快就完成开发实现了。
4步轻松实现IM即时通讯消息收发
1、初始化 IM SDK
获得一个 ZIM 实例
zim = ZIM.create(appID, application);
2、登录ZIM SDK
类比微信账号登录的操作,用来作为收发消息的载体
void login(ZIMUserInfo userInfo,String token,ZIMLoggedInCallback callback)
3、发送端调用发送单聊文本消息
登录后便可调用该接口,在 message 填上想要发送的消息,在 toUserID 填上接收端的 userID,想要发送时调用即可
接口展示:
void sendPeerMessage(ZIMMessage message,String toUserID,ZIMMessageSendConfigconfig,ZIMMessageSentCallback callback)
4、IM接收端收消息
(1) 通过 setEventHandler 注册事件回调的接收对象
IM 运行过程中会有各式各样的事件产生:收到了一条消息、网络连接中断等,通过该接口便可以接收 ZIM 抛出的事件,以便 App 做出相应的反应。
void setEventHandler(ZIMEventHandler handler)
(2) 在注册事件回调的接收对象中重写接收单聊消息的方法
zim.setEventHandler(new ZIMEventHandler() {
@Override
public void onReceivePeerMessage(ZIM zim, ArrayList messageList, String fromUserID) {
}});
由此我们实现了一对一聊天的文本消息的收发。
By the way, ZIM SDK 也支持富媒体消息的收发,包括图片、视频、音频和文件。发送富媒体消息时只需要将文件的 path 传入接口,上传进度可从 progress 回调中获得。
此外 ZIM SDK 还支持房间、群组的用法,无需去二次封装,绘制相关 UI 并使用 SDK 接口提供的数据驱动即可实现对应功能。同时ZIM SDK结合即构自家的RTC 音视频 SDK实现各类音视频场景的用户互动,适合Avatar , 直播,语聊房等场景的开发者和有需求企业。近期有开发规划的开发者可上即构官网查看。