分层架构 IM 系统之多媒体功能设计与实现

现在 IM 系统已经不仅限于文本消息的通讯了,多媒体数据占据越来越多的比重,比如:文件传输、语音通话、视频通话等。

在前面的文章(《基于需求分析模型来结构化剖析 IM 系统》)中我们分析过,“多媒体消息” 属于扩展功能需求,“点对点私信消息” 属于基础功能需求,扩展功能以基础功能为基础,基础功能稳定实现后,开发扩展功能是非常简单和快速的事情。今天我们分析一下 IM 系统的文件传输和语音通话功能关键逻辑实现,内容不复杂。

在前面关于分层架构 IM 系统所有文章的描述中,客户端与服务端之间的通讯一直是基于一条 TCP 连接进行的,也就是单通道通讯。其实,在一个具备多种功能的 IM 产品中,前后端的通讯往往都是基于多通道的,也就是每个客户端与服务端之间会建立多条连接(可能是 TCP 协议、也肯能是 HTTP 协议,还可能是 WebSocket 协议),为什么要这样设计呢?

首先,每个通道传输自己专属的数据,避免通道之间相互影响,产生阻塞或延迟,尤其是文本消息数据,需要一个专属的通讯通道;我们知道多媒体数据往往会占用较大空间,如果通过文本消息通道传输多媒体数据的话,很容易影响文本消息的及时性和可靠性。

其次,每个通道传输自己专属的数据,这从底层逻辑上就解耦了逻辑关联,降低了整个系统实现的复杂性;我们在前面的文章(《架构师晋级:直播问答系统(解析)》)中,分析过直播问答系统如何通过多通道设计系统架构,降低复杂度。

下面,我们分别分析一下如何基于 IM 系统实现文件传输和语音通话。

一、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值