基于融云集成开发一款 IM 的基本思路


            
2018-05-14 14:43 | 产品功能介绍

回答:

阅读本文前的必读:

官网架构说明:http://www.rongcloud.cn/docs/quick_start.html 

用户信息管理:http://support.rongcloud.cn/kb/NzQ3 

各端文档入口(内含 SDK 下载地址 ):http://www.rongcloud.cn/docs/index.html 


名词约定:

应用服务器:客户自己的服务器,部署运行业务代码,由客户开发团队自行管理维护,用来对接融云 IM 服务

各种端:指 Android、iOS、Web、小程序、桌面 这 5 种 面向最终用户的端,基于端上的 SDK 可以直接通过融云服务器进行消息的收发;Android 与 iOS 为纯原生开发,Web 与小程序是 Javascript 开发,桌面版基于 Electron(nodewebkit)技术,支持 Window7+、Mac、Linux

融云 IM 服务:融云基于互联网提供的即时通讯服务,通过 Server API、Server SDK 与应用服务器对接,通过端上的 SDK 直接提供面向最终用户的通讯服务,客户开发团队在端上直接引入 端上 SDK 即可收发消息,进行会话。

最终应用:客户正式面向用户的应用,一般通过应用市场提供下载安装。

融云应用:开发者在融云创建的应用,每个应用都默认提供用于开发测试的开发环境以及正式对外运营的生产环境,一个融云应用可以通过应用标识生成多个可互相收发消息的最终应用

应用标识管理地址https://developer.rongcloud.cn/app/identifierlist/ 


特殊说明:

多端互通只有在同一个 Appkey 下,各个端才可消息互通。即使同一个开发者账号里不同 Appkey 下的应用,也不支持互通。

混合开发:融云只提供以上 5 种端的 SDK,不提供混合开发模式(Cordova、APICloud等)的 SDK。

如果需要使用混合开发,请自行封装,建议基于原生 SDK 管理底层通讯和数据存储,使用 Web 进行 UI 界面开发。

准确讲是曾经提供过且正式下线不再提供,原因是要实现一个高可用的 IM 产品,混合开发并不是一个好的方式,涉及到长链接的管理、Push、高频率消息收发带来的界面更新,必须深度依赖于原生能力,而大部分选择混合开发模式的团队是为了尽量不进行原生开发。


融云不提供用户托管服务,设计初衷也是为了客户能更好的管理自己的用户和业务,同时用最小的成本可以集成 IM 相关功能,顺着这个思路,基本集成步骤如下:

  1. 在应用服务器维护管理用户信息、群组关系等,并同步用户 id、群组关系至融云
    同步用户:http://www.rongcloud.cn/docs/server.html#user 
    同步群组:http://www.rongcloud.cn/docs/server.html#group
    ServerSDK 推荐:https://www.rongcloud.cn/docs/server_sdk_api/index.html   (Java、NodeJS)
    端上用户注册、群管理流程:http://support.rongcloud.cn/kb/NzQ3   

  2. 端上登陆后,直接通过 token 链接融云并进行消息收发,端上 SDK 提供了按会话获取历史消息的方法,融云只提供消息的收发及相关的禁言、Push、广播等服务,好友列表、通讯录等都需要应用服务器实现
    各端文档入口:http://www.rongcloud.cn/docs/index.html 
    消息类型与文件格式:http://support.rongcloud.cn/kb/NjE0 
    端上用户、群组信息处理方式:http://support.rongcloud.cn/kb/NjQ5 
    用户在线状态:http://www.rongcloud.cn/docs/server.html#online_status 

  3. 其他主要功能
    应用服务器发送消息:http://www.rongcloud.cn/docs/server.html#message 
    应用服务器实时接收消息:http://www.rongcloud.cn/docs/server.html#message_sync 服务名:实时消息路由
    应用服务器批量分时段下载历史记录(非实时):http://www.rongcloud.cn/docs/server.html#history_message 
    短信:http://www.rongcloud.cn/docs/sms_service.html 
    其他高级功能:http://www.rongcloud.cn/docs/advanced_features.html 

  4. 付费服务与收费说明
    付费服务:http://www.rongcloud.cn/docs/payment.html 
    收费说明:http://www.rongcloud.cn/pricing 

  5. 聊天室相关
    端上 SDK:http://www.rongcloud.cn/docs/live_chatroom.html 
    Web Demo:https://rongcloud.github.io/websdk-demo/chatroom/chatroom.html 
    服务器端接口:http://www.rongcloud.cn/docs/server.html#chatroom 


各端集成文档:

    iOS:http://www.rongcloud.cn/docs/ios_imlib.html 

    Android:http://www.rongcloud.cn/docs/android_imlib.html

    Web: https://rongcloud.github.io/websdk-demo/integrate/guide.html 


环境说明:

  1. 创建的每个应用都会分配开发环境和生产环境,每个环境都分配了各自的 Key/Secret,两个环境完全隔离不互通 

  2. 开发环境用来进行开发测试,除了短信、音视频等外,绝大部分服务可以免费开启体验,只是有100个开发用户数的限制,妥善管理用户信息,100个账号可以满足大开发团队的需要

  3. 生产环境用于发布正式的应用,发布时端上替换 Key,应用服务器替换 Key/Secret,重新注册用户,重新分配 token,之前开发环境的所有 token 在生产环境均不可使用

  4. 请注意在生产环境开启正式使用的收费服务,涉及充值、开通生效时间等,请提前开通好,避免影响发版


最后,为了方便开发者,融云官方实现了一套 IM,包含应用服务器部分(仅提供 NodeJS 版本实现,基于 NodeJS 版本 Server SDK)、iOS、Android、Web 多端实现,并开源提供给所有开发者,https://github.com/sealtalk ,请选择使用。

您认为此回答对您有帮助?

共有 2 位开发者认为此问题有帮助

我对此仍有疑问!继续追问