24小时在线平台

当前位置: 24小时在线平台 > 部署教程大全 > 文章页

ChatClient简介 · 野火IM开发手册

时间:2025-05-12 06:06来源: 作者:admin 点击: 18 次
1. ChatClient简介 ChatClient是协议栈在Android平台的wrapper和平台实

1. ChatClient简介

ChatClient是协议栈在Android平台的wrapper和平台实现,只加上了少量逻辑,ChatClient和协议栈一起完成了所有的能力,但不包括任何的UI。

协议栈处理连接/发送/接收/状态同步等任务,并且内置有SQLite数据库,组织管理各种数据。具有如下功能:

基础功能

消息功能

会话管理功能

消息管理功能

群组功能

用户功能

好友功能

个人设置

聊天室功能

频道(和微信公众号类似)功能

1.0.1. 简单使用步骤

初始化操作,只需在主进程进行,否则会出现重复收到消息等各种奇怪的现象,下面只列出最简步骤,详情请参考android-chat项目

初始化

// 只在主进程进行初始化,可参考MyApp.java ChatManager.init(application, Config.IM_SERVER_HOST);

置事件回调

ChatManager chatManager = ChatManager.Instance(); chatManager.startLog(); chatManager.addOnReceiveMessageListener(OnReceiveMessageListener listener); chatManager.addRecallMessageListener(OnReceiveMessageListener listener) // ... 设置其他时间回调监听,更多请参考ChatManager

初始化音视频

AVEngineKit.init(application, AVEngineKit.AVEngineCallback); AVEngineKit avEngineKit = AVEngineKit.Instance(); avEngineKit.addIceServer(Config.ICE_ADDRESS, Config.ICE_USERNAME,Config.ICE_PASSWORD);

连接IM 服务器

chatManager.connect(id, token);

等待时间回调通知,如收到新消息、用户信息更新等。

1.0.2. 信息获取说明

用户信息/群组信息/频道信息/好友信息/设置信息等,客户端的DB中会存储上一次从服务器更新来的信息,因此当UI获取这些信息时可能返回为空(Android 平台,为了减少UI层的判断压力,采用了Null Object Pattern,返回值并不是NULL, 而是NullUserInfo等,NullUserInfo等对象uid是正确uid但其他信息是默认值,可参考具体的代码)

另外有些场景UI希望是获取旧的信息尽快展示到UI上,然后同时刷新以便有更新显示正确。

因此当本地信息不存在或获取信息时强制刷新,协议栈回去IM服务器同步该信息,如果信息有变更,则会有对应的回调通知。

public interface OnUserInfoUpdateListener { void onUserInfoUpdate(List<UserInfo> userInfos); } //ChatManager.java /** 1. 当返回为NullUserInfo,会触发onUserInfoUpdate 2. 当refresh为true时,如果是信息有更新,则会触发onUserInfoUpdate */ UserInfo getUserInfo(String userId, boolean refresh); 1.0.3. 函数说明

请参考ChatManger这个类

2018 © wildfirechat.net 京ICP备18060403号-1 all right reserved,powered by Gitbook该文件修订时间: 2025-04-05 11:13:01

(责任编辑:)

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2025-07-05 19:07 最后登录:2025-07-05 19:07
栏目列表
推荐内容