WebRTC架构
网页应用程序(Web APP)
网页程序开发接口(Web API)
WebRTC本地的C++应用程序开发接口(WebRTC Native C++ API)
传输与会话协议(Transport/Session)
音频引擎(VoiceEngine)
视频引擎(VideoEngine)
WebRTC API
(1) MediaStream
负责获取用户本地的多媒体数据
(2)RTCPeerConnection
实现建立点对点连接与传输流媒体数据的功能
(3) RTCDataChannel
建立连接与传输媒体流Track
Golang
语法上和C语言相似,主要的特点有:内存安全、自动垃圾回收、静态类型(支持自动推导类型)、反射、 低开销的协程与CSP(Communicating Sequential Process)并发模型。
工作需求
①设备端:安装到受控设备上的客户端软件
②客户端:用户用来远程控制设备端的Web操作界面
③服务端:运行在服务器上的帮助客户端与设备端建立连接的信令服务器。
实现功能:对等连接、远程监控、远程控制、远程登录
一、对等连接
设备端:通知服务端自己在线,并定期发送心跳包维护在线状态;能够在收到连接请求时生成本地SDP,并通过服务端实现与客户端交换彼此的SDP
客户端:从服务端获取当前在线的设备列表,选择要连接到的设备,生成本地SDP,并通过服务端实现与设备端交换彼此SDP
服务端:(1)承载客户端,当用户通过浏览器访问服务端时,服务端可以响应并返回Web客户端(2)能够接收设备端上线的信息,将其添加到在线设备列表中,并且拥有能获取当前在线设备列表的接口(3)在Web客户端选择要连接的设备之后,服务端能够作为中继服务器帮助双方交换各自的SDP,并在设备端建立对等连接之后,将设备列表中的对应设备设为不可用。