如何创建视频聊天应用程序?(二)

如果你的浏览器要连接到其他浏览器,要在SDP中交换的信息包含以下内容:

  • 会话控制消息,用于打开或关闭通话;
  • 错误消息;
  • 媒体元数据,例如编解码器和编解码器设置,带宽和媒体类型;
  • 密钥数据,用于建立安全连接;
  • 网络数据,例如外界看到的主机IP地址和端口。
WebRTC应用程序的架构

2. 要启动、运行WebRTC应用程序,需要哪些东西?

  • 你需要一个用户界面。

你需要一个网络应用程序,该应用程序要能在加载或单击按钮时建立连接,然后显示同一个聊天室中你这一端发送的视频数据。

技术层面上来说,就是你要创建一个RTCPeerConnection,并将其发送到远程端存储在自己的电脑中。建立好网络应用后,你可以把网络应用程序托管在服务器中的某个位置,以便朋友可以公开访问它。

  • 你需要一个服务器来发送信令。

还记得我们提到的信令吗?它用于向制定房间中的所有人提示你进入房间。当你进入时,会议室中现有的每个成员都将通过SDP记录你的细节和远程信息,并将其存储在他们的电脑上,同时也准备从你那里接收媒体数据。

技术层面上来说,WebRTC处理SDP信息的创建和处理,但不处理其发送和接收。因此这样的传输需要服务器。利用websocket服务器执行此传输和初始化是很常见的事情。

  • 你需要一个STUN服务器。

该服务器用于检索远程端的公共IP地址。简单来说,就是我们每个人都有一个公共IP地址,并使用STUN服务器获取此信息。然后这些信息会成为你刚进入房间时需要发送给另一端的SDP信息的一部分。

  • 你可能需要一个TURN服务器

如果你需要与你的远程端联系,但无法直接与其联系的话,TURN服务器可以作为媒介来为你传递消息。有网友在Quora中问到了这个问题,详细信息点此查看。

3. STUN服务器的用途?

即NAT会话穿越应用程序。双方都至少要了解其另一端的IP地址和分配的UDP端口。

无论使用哪种架构,我们都需要信令服务器来进行注册和显示状态。TURN服务器可以帮助我们遍历网络,并确保内部IP地址可以映射到外部公共ip地址。

STUN如何运作?

点击此处,你可以随时更新或编辑。

现在你能看到浏览器使用STUN服务器请求你的公共IP地址,平时我们是看不见的。这让我学到,魔术从来都不是真正的魔术,幕后有千变万化。如果你想学习魔术,就必须了解背后的这些事。

4. 什么是TURN服务器

中继NAT遍历是一种用于中继网络流量的协议。有时由于防火墙和一些网络相关的工具(也就是NAT),在你使用STUN服务器,设法检索远程对等方的公共IP地址时,你需要一个能公开访问网络,做你媒体中继的一个TURN服务器,这个过程有点像一个中间人帮你传递信息。

文章地址:https://blog.phuaxueyong.com/post/2020-06-15-how-to-make-a-video-chat-app/

原文作者:JOSHUA PHUA

填写常用邮箱,接收社区更新

WebRTC 中文社区由

运营