前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IM即时通信探索(一)-- IM的即时通信初见

IM即时通信探索(一)-- IM的即时通信初见

原创
作者头像
黑眼圈云豆
修改2020-07-06 17:42:19
2.6K0
修改2020-07-06 17:42:19
举报

大家好,我是黑眼圈云豆。这个系列的文章主要是针对IM功能进行探索,逐步实现一个相对功能较为完整的IM项目。

今天先给大家介绍一下IM这个产品。

架构介绍

论聊天软件的实例,腾讯就不用多说了,经历了这么多年的经验和技术整合出来的IM SDK目前已经能够完整应用在Android、iOS、Windows、Web等平台上了。

目前sdk已经整合了单聊群聊服务。

单聊

单聊即 1V1 聊天,提供包括文字、表情、地理位置、图片、语音、短视频及自定义消息的能力,可实现红包、对话机器人、消息回执、消息撤回等特殊功能,除此之外还提供离线消息、漫游消息等服务。

群聊

多人聊天服务,根据群组加群方式及管理组织形式的部分预设以下四种群组类型,可以适应各种群聊场景需求。

  • 好友工作群(Work):类似普通微信群,创建后仅支持已在群内的好友邀请加群,且无需被邀请方同意或群主审批。
  • 陌生人社交群(Public):类似 QQ 群,创建后群主可以指定群管理员,用户搜索群 ID 发起加群申请后,需要群主或管理员审批通过才能入群。
  • 临时会议群(Meeting):创建后可以随意进出,且支持查看入群前消息;适合用于音视频会议场景、在线教育场景等与实时音视频产品结合的场景。
  • 直播群(AVChatRoom):创建后可以随意进出,没有群成员数量上限,但不支持历史消息存储;适合与直播产品结合,用于弹幕聊天场景。

我后面的项目也主要是围绕着单聊、群聊和会话管理三方面进行扩展。

demo展示

官方线上demo地址点击前往

官方线上demo
官方线上demo

IM SDK结构

TIM

引入IM SDK之后,SDK有一个命名空间TIM,这个变量上面有一个静态方法create和两个常量EVENT、TYPES,其中create方法可以创建一个sdk实例,sdk的方法都在这个实例上,另外两个常量主要用于监听事件和区分类型,结构图如下:

命名空间TIM
命名空间TIM

SDK实例

通过TIM.create方法创建的sdk实例包含的方法按功能大概可以分为六类基础、消息、会话、资料、群组、群成员。其中基础的方法包括了登入、登出等功能。

在基础方法中有一个registerPlugin()方法,允许注册插件,不过目前支持的插件只有两个cos-wx-sdk和cos-js-sdk,分别适用于小程序和H5文件上传的插件。

常量

常量目前分为两个大类,TIM.EVENT和TIM.TYPES,分别用来标识事件名称和数据类型,其中数据类型TYPES按照类型可以分为15个小分类,数量挺多的,基本可以用来标识所有IM产品中产生的数据。

IM SDK结构分类图
IM SDK结构分类图

这是我整理出来的结构图,里面具体的事件和方法名字我就不展示出来了,数量比较多,大家可以去官方手册上去看详细的内容,点击查看官方手册

在SDK里面还有五个对象分别是Message(消息)、Conversation(会话)、Profile(资料)、Group(群组)、GroupMember(群组成员)。这些对象并不是那些可以直接用的,而是在一些事件或者方法里面传出来的数据。

SDK中常用对象
SDK中常用对象

其中message对象里面有一个字段payload(消息内容),这个字段根据消息的类型,会有不同的结构。目前有九种结构分别是文本、图片、音频、视频、文件、自定义、位置、群提示消息、群系统通知。具体内容也可以在官方文档中查看到。

总结

IM即时通信已经是一个完整的通信sdk了,只要项目中接入了IM,按目前官方提供的内容来看,已经可以很简单的创建一个实时通信的功能,甚至项目。

不过IM里面肯定还有一些坑点和难点,下一篇文章,我将给大家看看我整理出来的一些需要注意的点。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 架构介绍
    • 单聊
      • 群聊
      • demo展示
      • IM SDK结构
        • TIM
          • SDK实例
            • 常量
            • 总结
            相关产品与服务
            对象存储
            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档