WebRTC
名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支
持网页浏览器进行实时语音对话或视频对话的API。
WebRTC是由Google主导的,由一组标准、协议和JavaScript API组成,用于实现浏览器之间(端到端之
间)的音频、视频及数据共享。
官网
RTP协议(RFC3550)
实时传输协议(RTP)
用于音频数据(RTP),另一个用于控制包(RTCP)
SDP(RFC4566)
Session Description Protocol
SDP协议主要包含:
SDP包括以下一些方面:
(1)会话的名称和目的
(2)会话存活时间
(3)包含在会话中的媒体信息,包括: 媒体类型(video,audio, etc) 传输协议(RTP/UDP/IP,H.320, etc) 媒体格式(H.261 video, MPEG video, etc) 多播或远端(单播)地址和端口
(4)为接收媒体而需的信息(addresses, ports, formats and so on)
(5)使用的带宽信息
(6)可信赖的接洽信息(Contact information)
TURN(RFC5766)
ICE(RFC5245)
ICE全称Interactive Connectivity Establishment:交互式连通建立方式。ICE参照RFC5245建议实现,
是一组基于offer/answer模式解决NAT穿越的协议集合。它综合利用现有的STUN,TURN等协议,以更
有效的方式来建立会话。客户端侧无需关心所处网络的位置以及NAT类型,并且能够动态的发现最优的
传输路径。
Socket.IO
https://socket.io/
https://socket.io/docs/v4
应用场景
- 实时分析:将数据推送到客户端,客户端表现为实时计数器、图表、日志客户。
- 实时通讯:聊天应用
- 二进制流传输:socket.io支持任何形式的二进制文件传输,例如图片、视频、音频等。
- 文档合并:允许多个用户同时编辑一个文档,并能够看到每个用户做出的修改
WebSocket 原理
WebSocket是一种双向通信协议,它建立在TCP之上,同HTTP一样通过TCP来传输数据,但与HTTP最
大不同的是:
- WebSocket是一种双向通信协议,在建立连接后,WebSocket服务器和Browser/UserAgent都能
主动的向对象发送或接收数据,就像Socket一样,不同的是WebSocket是一种建立在Web基础上
的简单模拟Socket的协议。 -
WebSocket需要通过握手连接,类似TCP也需要客户端和服务端进行握手连接,连接成功后才能相
互通信。
image.png
网友评论