美文网首页
服务端集成要点 @ 腾讯云通信

服务端集成要点 @ 腾讯云通信

作者: michael_jia | 来源:发表于2016-11-16 20:56 被阅读2201次

    腾讯具有高并发、高可靠的即时通信能力;利用 腾讯云通信 提供的 SDK 可以将即时通信功能快速集成到自己的 APP 中;
    Web 集成的主要工作在客户端集成,服务端集成的工作并不多,本文说一下其要点;

    概念
    • 账号登录集成
      账号登录有 独立模式 和托管模式两种;对于有自己的账号系统的应用来说,独立模式是你的选择;账号的独立模式并不影响 资料(昵称和头像就是典型的标配资料字段)和 群组 的托管;
    • UserSig
      腾讯云通信专门提供了 TLS(Tencent Login Service)后台 API,生成公私钥、生成 UserSig 和校验 UserSig;
      简单一点说,就是使用腾讯后台给你的应用生成的私钥(私钥由开发者保存,公钥由腾讯保存)为你的自有账号系统的用户ID(Identifier)签发一个新“密码”(以下称为UserSig);而后客户端使用这个 Identifier/UserSig 就可以登录腾讯云通信(腾讯使用公钥对签名 UserSig 进行校验),从而使用其提供的云通信服务;
    • Identifier
      你提供给腾讯的用户ID应当唯一,不论是你账号系统的用户ID也好,还是用户名也好,都可以;
    AppServer 提供的 App 接口
    1. 注册时:基于我们的业务特点(在线即时沟通),在注册的同时即生成 UserSig,并记录下过期时间;
      TLS 后台 API 默认接口生成的签名有效期为 180 天;文档说开发者可以使用含有有效期参数的接口自行设定有效期,但是所提供的工具 linux-signature64 并无用来设定有效期的参数;
    2. 登录时:检查 UserSig 有效期,如果过期则予以更新(重新生成一个新签名);
      登录的核心要义:服务端通过验证由客户端提交的用户名和密码,以在客户端浏览器种下相应 cookie 和或 token 为标志;至于是否要在登录请求的响应中附加返回相应属性信息,要看是否会引起功能耦合;如果在登录时返回 UserSig,则势必会引发 cookie 和 UserSig 时效性的一致性问题,因此本次保持登录接口响应的最简设计;
    3. 获取用户信息时:返回有效的 UserSig 和 过期时间(供测试);
    4. IM 群组:设置独立的游客和客服账号,加入到每个群组;
    5. 在实际过程中,登录注册是一个接口;
      即:在处理登录时,若发现尚未注册,则即时注册;凭手机号/验证码登录,故这类隐性注册并无昵称/头像;
    AppServer 提供的回调接口
    1. 群内发言之后回调,记录谁发过言;
    2. 上下线回调;
    3. 创建群组之后回调,发送欢迎消息;
    典型流程
    腾讯这一侧使用的都是identifier(用户id)和 UserSig(sig)
    • 账号注册在 APP 自有注册服务器完成,账号/密码无需同步到腾讯;
      即:无须同步注册到腾讯;
    • 开发者和腾讯之间通过签名验证建立信任关系;
      下载保存应用私钥、由私钥加密指定数据以生成用户账号签名(UserSig)是整个流程中的关键环节;
    • 终端首次登录腾讯后台即可在腾讯后台生成腾讯内部ID,并不需要 AppServer 调用 账号导入接口 事先同步到腾讯;
    • 为降低耦合,终端(客户端)在保存用户信息时,除了保存一份到 AppServer 外,还要自己调用 IM SDK 用户资料 接口将更新同步到腾讯后台:
      - 昵称:Tag_Profile_IM_Nick;头像:Tag_Profile_IM_Image;更多标配资料字段
      - 昵称和头像只在个人中心修改资料和激活工程商时才会提供;实际使用群组消息中仅用到 ImServer 传送的昵称,故头像也无须同步;
    PHP Server SDK
    • v1.4 版
    • 粗略使用就发现有几个函数功能实现并不完善;
      也不像是在积极改进的样子,因为 github 上自 2016.7.4 之后再没更新;
      比如:设置签名有效期就是一个功能尚未实现的例子;
    • REST API 在线调试工具
    值得阅读的指引

    相关文章

      网友评论

          本文标题:服务端集成要点 @ 腾讯云通信

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