⭐六、消息获取模式篇
推模式(Push Mode)
当通知消息来之时,服务器主动将所有相关信息都通过参数的形式"推给"客户端。客户端无需主动请求数据。
服务端一直监听某个端口,当客户端有数据要发送时,就推到这个端口上给服务端。
常见的推模式协议:
- RTMP(Real-Time Messaging Protocol) :
- 主要用于视频流的推送,常用于直播。
- 服务器主动将视频流推送到客户端,客户端只需接收数据并播放。
- WebSocket :
- 通过 WebSocket,服务器可以主动推送消息或数据到客户端,客户端可以实时接收。
- 适用于低延迟的实时应用。
- 国标(GB/T 28181) :
- 广泛应用于视频监控系统,尤其是在公共安全领域。
- 国标协议中的视频流是实时推送的
拉模式
当通知消息来之时,通知的函数不带任何相关的信息,而是要客户端主动去"拉"信息;客户端主动请求服务器获取数据,客户端会按需获取流媒体数据。
在客户端的某个端口 有无时无刻有流 的存在,当服务端需要流时,服务端自行连接客户端的端口 ,从客户端端口里面拉数据。
这种模式适用于客户端对数据流的控制需求较高的场景,客户端可以在任何时候请求数据。
弊端:当客户端在内网,服务端在公网,则服务器找不到客户端设备,无法进行拉模式。
常见的拉模式协议:
- HTTP Live Streaming (HLS) :
- 客户端定期向服务器请求分段 的媒体文件(通常是
.ts
文件)。 - 通过 M3U8 播放列表,客户端可以获取媒体片段并播放。
- 客户端定期向服务器请求分段 的媒体文件(通常是
- RTSP(Real-Time Streaming Protocol) :
- 客户端主动请求流媒体服务器并通过拉模式获取实时视频流。
- 常用于 IP 摄像头、监控等系统中。
- RTSP 通常配合 RTP (Real-time Transport Protocol) 使用进行数据传输。
- FTP(File Transfer Protocol) :
- 在一些场景下,流媒体内容也可以通过 FTP 拉取,尤其是用于大文件传输。