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

腾讯具有高并发、高可靠的即时通信能力;利用 腾讯云通信 提供的 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 在线调试工具
值得阅读的指引
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,342评论 0 15
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • 一:准备工作 1、集成流程(1)注册成为云通讯平台用户。(2)登陆云通讯平台,进入管理控制台,创建自己的应用。(3...
    by小杰阅读 1,919评论 0 3
  • 想要发泄, 又发泄不出; 想要抑制, 却很难抑制。 天啦!我该怎么办 有位心理专家说: 发泄是必要的, 抑制也是必...
    木貞ma阅读 281评论 1 2
  • 题记:午睡时梦见父亲报名参加了三团旅行社的一趟旅游,从瑞安出发到太原,一站一站玩过去,十几天的时间,只收费798元...
    珞历阅读 131评论 0 1