目录

开发者工作

1. 开发者需要自己实现聊天界面
2. 开发者需要接入消息云安全认证
3. 开发者需要自己定义消息体格式

常见问答

为什么不提供聊天界面
我们不提供统一的聊天UI,基于以下理由:
    1. APP都有自己的风格,万紫千红才是春,一套UI显然不能满足大家需求
    2. UI对于开发者而言,开发成本并不高
    3. 开发者自行开发UI,可100%自定义界面和功能
所以,我们认为由开发者根据自己APP的风格来自定义UI比较合适
为什么需要开发者自定义消息格式
我们不提供统一的消息格式,而由开发者自定义消息格式,基于以下理由:
    1. APP所需消息功能各异
       有的需要已读,有的则不需要已读功能,所以我们提供了推荐的消息格式,
       由开发者根据自己情况定义最适合自己的消息格式
    2. MIMC(小米即时消息云)应用场景广泛
       IM聊天只是MIMC的一个特殊使用场景,还存在IoT信令传递等各种消息传递场景
所以,我们认为由开发者根据自己APP的实际需求,参考我们推荐的消息格式,来定义消息体格式比较合适
什么开发者不需要维护帐号映射
MIMC用户登录/消息收发等都使用APP帐号系统里的账号ID,MIMC帐号体系对APP开发者透明!

APP开发者接入其他IM提供商时,要访问IM提供商服务,主动为每一个appAccount注册一个新的ID,
开发者还需要在自己的后台系统储存以下信息:
    1. appAccount --> IM提供商系统内ID
    2. IM提供商系统内ID + IM提供商系统内登录密码(明文)
这样做有以下弊端:
    1. 开发者维护帐号映射成本高,一旦出错难以修正
    2. 明文存储登录密码,安全性极差,开发者承担极高的安全风险

所以,MIMC(小米即时消息云)没有采取以上方案,MIMC自维护帐号映射,保证MIMC ID对开发者透明
这不仅降低了开发者负担,增强了帐号安全性,还能让开发者感觉MIMC就是"自己的"消息系统
举例说明:
    假设开发者拥有某APP叫"言士文学",集成了MIMC(小米即时消息云)服务
    假设"言士文学"在小米开放平台注册的appId为"580012345678"
    某用户A登录"言士文学"所用帐号名为手机号"13800000001"
    某用户B登录"言士文学"所用帐号名为手机号"13800000002"

    当用户A首次登录"言士文学":
        userA = new User("580012345678", "13800000001");
        userA.login();
    MIMC后台服务会为A创建MIMC ID("8049600000000001"),并维护以下映射:
            "580012345678" + "13800000001" --> "8049600000000001"

    然后,用户A给用户B发消息:
        userA.sendMessage("13800000002", "Hello B");
        由于B还未登录过"言士文学",所以MIMC会自动为B创建创建MIMC ID("8049600000000002")
    并维护以下映射:
            "580012345678" + "13800000002" --> "8049600000000002"
    并将消息"Hello B"暂存在服务器(七天后过期)

    用户B登录"言士文学"时:
        userB = new User("580012345678", "13800000002");
        userB.login();
        因为B在MIMC已经有了ID,所以MIMC后台服务不会再为其分配新ID
        MIMC后台服务检测到B登录,下发离线消息"Hello B"给B

results matching ""

    No results matching ""