美文网首页
米讯 社交SDK 开发指南

米讯 社交SDK 开发指南

作者: runcrow | 来源:发表于2016-02-22 13:59 被阅读0次

一、米讯(MiMessage)SDK简介

米讯SDK,主要提供各种即时通讯服务。帮助游戏和app快速实现 实时聊天,私信留言,音视频通话,群聊等im功能。

目前我们提供了Android、iOS的客户端SDK,同时提供了各个平台的详细文档和Demo,帮助快速入门。

* 我们强烈建议你阅读完本篇指南之后,再去查看以上的详细文档。

二、功能说明

1、帐号绑定系统

接入方需要通过唯一的appid、appkey、guid来向米讯服务器绑定用户,后续交互通过这个guid来标志一个用户。

米讯服务器不关心guid的业务逻辑,接入方只需要保证guid独立性。

2、聊天室和群组系统

米讯服务器提供open-api,接入方服务器需要随时和米讯服务器同步群组关系。

支持 room(聊天室)和group(群组)两种群聊模式。

room:只提供在线消息收发,用户离线时自动退出。不保存记录。(频道聊天,房间聊天等)

group:稳定的群组关系,提供云端消息存储和离线消息等功能。(工会聊天、邮件等)

3、消息功能

支持单聊、聊天室、群聊。并且具备完善的群组管理功能。

支持文字、语音、自定义文件、小视频、图片(开发中)等多种自定义类型消息。

聊天记录保存在云端,允许自由获取。

支持系统向指定用户和群组发送消息。

4、实时音视频通话

提供最多16人的 多人实时语音通话功能

支持通话中的各种设定

支持根据带宽情况,只能调整流量消耗

支持最多4人的多人视频功能(开发中)

如果不需要使用实时通话功能:可以删掉lib中的 rtc-sdk-jni.so 和 libHDACEngine.so 文件以减小SDK体积。

5、其他扩展功能

离线消息推送

敏感词过滤

资料和关系链托管

其他个性化业务

如有需求请单独联系我们

6、我们提供几个层面用户接口:

原生的 Android、iOS、的客户端 SDK

服务器帐号绑定、群组管理、系统消息发送的open api

可以实时监控用户数、消息数的开发者控制台(开发中)

7、Unity 的补充说明

为方便unity游戏接入,我们提供了unity的SDK封装和样例工程。

unityDemo分为展示基础功能的appDemo和演示游戏中实时通话的SpaceShooter。接入方可以按需参考。

三、服务架构

四、核心概念说明

1、授权(appID、appkey)

接入方从米讯获取 appID和appkey。

所有服务端的接口鉴权,都要通过appID和appkey来实现。请妥善保存。

客户端接口需要的token、publicID、publickey,需要由接入方服务器,用appID和appkey来换取。再转发给客户端保存。

2、账户绑定(guid、token、pubkey)

接入方需要提供唯一的id来标识一个用户端。这个id,在米讯SDK中,称之为guid(最长128个字符)。

接入方服务器需要调用米讯服务器的bind_account(appid,appkey,guid)来进行注册。米讯服务器将返回对应这个guid的 token、publicID、publickey。

接入方app,在初始化米讯SDK提供的服务时,需要提供 (guid,token,publicID,publickey)。

* 米讯服务器不关心guid的业务逻辑,接入方只需要保证guid独立性。

3、群聊(room,group)

米讯SDK提供两种模式的消息群聊服务。分别适合不同的场景。

所有群组的管理,需要接入方服务器和米讯服务器实时交互,保证用户在正确的群里。

接入方app,调用米讯sdk消息操作,负责向群里的用户收发消息。SDK暂时不提供群组管理功能。

聊天室(Room)

只提供在线消息收发,用户离线(超过5min没心跳)自动退出room。再次上线需要重新加入。不保存消息记录。

适合频道聊天、聊天室、随机配对聊天等场景。

一个room,最多同时在线10000人。

rid:接入方定义,要保证不同room的rid唯一性。(128个字符内)

roomtype:接入方定义,方便用户屏蔽某一类room的消息。

群组(Group)

稳定的群组关系,提供云端消息存储和离线消息等功能。需要接入方服务器控制成员进出和群组创建销毁。

适合工会聊天,固定群聊等。

一个group,最多有1000个成员。

gid:接入方定义,要保证不同group的gid唯一性。(128个字符内)

grouptype由业务方定义,方便用户屏蔽某一类group的消息。

4、消息(Message)

Message是SDK用来传输消息的基本对象。需要接入放app构造,然后调用sdk的send接口进行发送。

Message的关键信息如下:

属性类型说明

messageID

String发送方填写的消息ID,用于本地消息去重

fromString发送方ID

targetString接收方ID ,单聊时为对方guid,群聊时为roomID或groopID

bodyMessageBody消息体。不同类型的消息,消息体内容不同,详见下方说明

bodyTypeint消息体枚举类型。暂时包括文本、语音。决定如何解释消息。

messageSeqlong服务端分配的消息序号,用于消息同步,离线消息拉取等

...

MessageBody

我们提供一下几种类型的MessageBody,后续会持续扩展

0、CustomMessageBody:data

1、TextMessageBody:text

2、AudioMessageBody:audioFilePath;audioUrl;duration

请接入方注意,控制每个Message最大不超过 5KB 的数据。

关于语音消息的录制工具,和自定义消息的方法,请参考详细说明文档。

4、语音通话(VOIP)和会议(Conference)

1、使用语音通话时,接入方服务器,需要先和米讯服务器交互,创建conference。并维护Conference里面的成员。

2、接入方客户端,通过joinconf(confid,guid)来加入确定的conference(前提是,这个conference的成员里面有这个人)

3、客户端加入房间成功后,可以使用各种接口控制音频通话 和 实时获取成员状态。

4、离开conference和确定conference不再使用时,需要及时leave和destroy。

如果不需要使用实时通话功能:可以删掉lib中的 rtc-sdk-jni.so 和 libHDACEngine.so 文件以减小SDK体积。

五、调用流程概要

1、发消息

2、实时语音通话

交互示意

调用流程图

六、详细文档和Demo

Android SDK 详情

iOS SDK 详情

服务端的 OpenAPI

七、联系方式

业务对接和常见问题:

韩尚佑;QQ:271843826;e-mail:hanshangyou@xiaomi.com

服务端API:

张友明;QQ:179818827;e-mail:zhangyouming@xiaomi.com

Android-SDK:

连冬阳;QQ:2460572865;e-mail:liandongyang@xiaomi.com

刘飞;QQ:276985107;e-mail:liufei3@xiaomi.com

iOS-SDK:

柯洪峰;QQ:249082954;e-mail:kehongfeng@xiaomi.com

相关文章

网友评论

      本文标题:米讯 社交SDK 开发指南

      本文链接:https://www.haomeiwen.com/subject/xxlvhttx.html