Linux/C++ 客户端快速开发
本页面供快速集成使用,了解更多请访问详细文档
SDK 整体架构
SDK 架构说明
BMXClient:SDK功能聚合类,包含了所有的service类、实现了网络事件监听接口。
BMXChatService:消息发送、消息历史获取、会话列表
BMXUserService:注册账号、登入、登出、我的设置
BMXRosterService:好友列表、黑名单、
BMXGroupService:群管理(创建、解散、查找、设置、成员管理、邀请、申请、接受、拒绝)
BMXChatServiceListener:消息到达事件、消息发送结果事件监听
BMXGroupServiceListener:群事件监听
BMXUserServiceListener:用户事件监听
BMXRosterServiceListener:好友事件监听
BMXNetworkListener:网络事件监听接口,由BMXClient实现
BMXConversation:会话
BMXMessage:消息
BMXGroup:群
BMXRosterItem花名册项(好友、陌生人、黑名单、前好友)
BMXUserProfile:用户信息
主要类之间的关系如下:
SDK集成
SDK文件说明
添加系统库依赖 您在工程中导入SDK之前,需要添加如下系统库的引用。
libz 解压缩库
libcrypto openssl加密库
libsqlite3 sqlite3本地数据库
lcurl libcurl网络库
lcurses ncurses库,运行embedded版本demo需要使用
一、初始化,导入相关头文件
二、注册用户
三、登录链接服务器
将您在上一步获取到的 账号密码,通过 BMXClient的单例,UserService类,传入 -signInById 方法,即可建立与服务器的连接。
提供两种登录模式:一种是普通手动登录,另一种是快速登录模式
四、获取会话列表
通过 BMXClient的单例,ChatService类的getAllConversations 方法,获取所有会话列表。返回BMXConversationPtr对象的数组列表。
如果需要获取多设备同步的离线会话列表,需要在SDK初始化配置setLoadAllServerConversations属性值为true,默认只获取本地会话列表。
五、断开连接
在断开与MaxIM服务器的连接时,默认会停止接收消息。
用户好友体系
添加好友
删除好友
同意添加好友
拒绝添加好友
获取好友列表
开发者可以通过参数forceRefresh,选择从服务器或者是从本地获取好友列表数据。 如果设置为NO, 当本地数为空,会自动从服务器去获取数据后返回结果。
基础功能
消息内容格式
文字
表情
语音片段
视频片段
图片
地理位置
自定义消息
单聊
单聊是最基本的聊天界面,提供文字、表情、语音片段、图片等多种输入内容,解决 App 内用户的沟通瓶颈。单聊的 BMXConversationType 是 BMXConversationSingle,toId 是单聊对象的 userId。
群聊
群聊是指附带角色和权限的用户集合内进行的内部广播方式的聊天功能,群组的 BMXConversationType 是 BMXConversationGroup,toId 是群组 Id。
创建群组
开发者可以注册监听,创建群组成功后, 收到相应回调通知,开发者可以进行一些UI处理。
加入群组
退出群组
解散群组
获取群成员列表
获取群组列表
获取群组信息
消息发送
登录成功之后才能进行聊天操作。发消息时,单聊和群聊调用的是统一接口,区别只是要设置下 BMXConversationType。
构建消息实体
文本消息
图片消息
文件消息
位置消息
语音消息
视频消息
消息操作
消息实体构建完成后,通过 BMXClient的单例,ChatService类,调用 sendMessage: 方法,将构建好的消息实体传入,即可实现消息发送。消息状态变化会通过注册的BMXChatServiceListener类型的listener回调通知。
发送
转发
重发
撤回
下载消息附件
消息接收监听
注册消息回调
接收到消息通知
消息发送后状态回调通知
附件消息发送状态回调
附件消息下载状态变化
功能进阶
BMXMessage实体中,提供可扩展属性(extension 和 config) extension 为开发使用的扩展字段,例如编辑状态。 config 为SDK自用的扩展字段,例如mention功能,push功能。
群组@功能 群组中支持 @ 功能,满足您 @ 指定用户或 @ 所有人的需求,开发者在BMXMessage中通过设置 setConfig 来实现群主@功能,已经@成员后的会同时在移动端下发推送通知。config对象中通过设置setMentionList可以设置@通知列表。通过setMentionAll设置是否@全部群成员。
消息正在输入状态
可以使用BMXMessage的setExtension函数设置json格式的信息,表明客户端在进行输入。
消息搜索
根据关键字搜索指定消息内容
Last updated
Was this helpful?