即时通信(一)

2021年3月24日 14点热度 0条评论 来源: zdj_develop

即时通信(Instant Messaging IM)
最早我们接触的即时通信软件,无非就是QQ了,再后来就是国民级应用软件微信了。国外比较有名的即时通讯软件有Whatsapp等。
国内后来,像支付宝、美团等软件上也都增加了即时通信功能。

包含即时通信功能都软件,大体上可以分为两类:
一、社交类应用软件。比如QQ、微信。这些都是社交聊天为基础,然后再往上加各种功能的。
二、其他软件,但是需要聊天这个功能。比如支付宝、美团、BOSS直聘。

APP(无论是Android,还是iOS,或者将来的鸿蒙)上实现即时通讯功能,有两种途径:
一、自己实现,通过长连接。
二、通过接入第三方即时通信服务,比如腾讯云IM、网易云信,融云。

我接入过腾讯云IM,因此在这里我就我的经验来总结下:
首先放出腾讯云IM的文档链接地址:
https://cloud.tencent.com/document/product/269/1498

针对开发者的不同阶段需求及不同场景,即时通信 IM 团队提供了一系列解决方案,包括:Android、iOS、Windows、Web 的 SDK 组件、服务端集成 REST API 接口、第三方回调接口 等

架构介绍
即时通信IM提供全球接入、单聊、群聊、消息推送、资料关系链托管、账号鉴权等全方位解决方案,并提供
完备的APP接入、后台管理接口。

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

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

群组具备高度可定制性,包括自定义群组类型、自定义群组字段、自定义群成员字段、自定义群组ID、自定义事件回调等。

IM SDK基本概念
会话:IM SDK中会话(Conversation)分为两种,一种是C2C会话,表示单聊情况自己与对方建立的会话,读取消息和发送消息都是通过会话完成;另一种是群会话,表示群聊情况下,群内成员组成的会话,群会话内发送消息群成员都可接收到。

消息:IM SDK中消息(Message)表示要发送给对方的内容,消息包括若干属性,如是否自己已读,是否已经发送成功,发送人账号,消息产生时间等;一条消息由若干Elem组合而成,每种Elem可以是文本、图片、表情等等,消息支持多种Elem组合发送。

群组ID:群组ID唯一标识一个群,由后台生成,创建群组时返回。

IM SDK对象
IM SDK对象主要分为通讯管理器、会话、消息、群管理。
通讯管理器(TIMManager)— 负责IM SDK基本操作,包括初始化、登录、注销、创建会话等。
会话(TIMConversation)— 负责会话相关操作,包括发送消息、获取会话消息缓存、获取未读计数等。
消息(TIMMessage)— 包括文本、图片等不同类型的消息
群组管理器(TIMGroupManager)— 负责创建群组、加群、退群等。

调用顺序
IM SDK调用需要遵循以下顺序,其余辅助方法需要在登录成功后调用。

步骤 对应函数以及说明
初始化 TIMSdkConfig(设置IM SDK基本配置,例如SDKAppID、日志等级等)—>TIMManager:init(初始化IM SDK)—>TIMManager:setUserConfig(设置用户基本配置)—>TIMManager:addMessageListener(设置消息监听)
登录 TIMManager:login(登录)
消息收发 TIMManager:getConversation(获取会话)—>TIMConversation:sendMessage(发送消息)
注销 TIMManager:logout(注销)
    原文作者:zdj_develop
    原文地址: https://blog.csdn.net/zdj_Develop/article/details/115000436
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。