除了 WebRTC 和 RTC,还有以下实时通讯技术:
- RTMP(Real-Time Messaging Protocol):
- 简介:这是 Adobe 公司为 Flash 播放器和服务器之间开发的音视频数据传输的开放协议,一般传输 FLV 或 F4V 格式的媒体流。
- 特点:工作在 TCP 之上,能够保持长连接,为用户提供低延时通信,是目前低延时直播应用比较普遍的协议,几乎是全部编码器标准输出协议。缺点是协议较老,对于一些新的视频格式缺乏官方定义,连接过程较长且拥塞控制依赖于 TCP 的拥塞控制算法。
- RTSP(Real Time Streaming Protocol):
- 简介:是传输层之上的应用层协议,可选择 UDP、组播 UDP、TCP、RTP 为传输机制。
- 特点:定义了双向多应用程序如何有效地通过 IP 网络传送多媒体数据,可充当多媒体服务器的网络远程控制,使实时数据的快进、快退、中止、播放等操作成为可能。它与 RTP 通常配合使用,RTSP 负责控制,RTP 负责数据传输。
- HLS(HTTP Live Streaming):
- 简介:由 Apple 公司提出的基于 HTTP 的媒体流传输协议,用于实时音视频流的传输。
- 特点:基于 HTTP 协议,网络支持好,能方便穿透防火墙或代理服务器。HLS 协议将整条流切割成一个个小的可以通过 HTTP 下载的媒体文件,然后提供一个配套的媒体列表文件(m3u8),客户端拿到 m3u8 后,根据内容顺序地拉取媒体文件播放。但是,这种方式相对来说延迟会比其他一些实时通讯技术高一些。
- SIP(Session Initiation Protocol):
- 简介:是一种应用层控制协议,用于创建、修改和终止多媒体会话,如 IP 电话、视频会议等。
- 特点:它具有很强的灵活性和扩展性,可用于不同类型的网络环境和终端设备。SIP 协议支持多种信令功能,如呼叫转移、呼叫等待、多方通话等,广泛应用于企业级的实时通信系统中。
- XMPP(Extensible Messaging and Presence Protocol):
- 简介:是一种基于 XML 的即时通讯协议,最初是为即时消息传递而设计的,但也可以用于实时通信。
- 特点:具有良好的开放性和可扩展性,支持多种设备和平台。XMPP 协议的通信方式是基于文本的,易于理解和实现,并且可以通过扩展来支持各种自定义的功能。不过,在实时性方面可能不如一些专门的实时通讯技术。
- MQTT(Message Queuing Telemetry Transport):
- 简介:是一种轻量级的发布/订阅消息传输协议,主要用于物联网设备之间的通信,但也可以应用于实时通讯场景。
- 特点:具有低带宽占用、低功耗等特点,适合在网络条件较差或设备资源有限的环境下使用。MQTT 协议支持异步通信,可以实现一对多的消息发布和订阅,方便实现实时数据的推送和接收。