正文字数:1807 阅读时长:3分钟
这是一个有关于使用声音的WebRTC信号的概念验证。适用于所有有麦克风+扬声器的设备。在浏览器中运行。
Written By ZION3R
url : https://www.kitploit.com/2020/10/wave-share-serverless-peer-to-peer.html
首先,附近的设备通过一系列音频音频序列交换必要的会话描述协议(SDP)数据来协商WebRTC连接。在成功的协商之后,浏览器之间建立一个本地的WebRTC连接,并允许通过局域网交换数据。
具体细节如下(2分钟视频):https://youtu.be/d30QDrKyQkg
你也可以自己试试:https://ggerganov.github.io/wave-share
运作原理
WebRTC技术允许运行在不同设备上的两个浏览器相互连接并交换数据。不需要安装插件或下载应用程序。为了启动连接,对等方需要交换联系信息(ip地址、网络端口、会话id等)。这个过程被称为“信号传递/信令”。WebRTC规范没有定义任何信令标准-联系人交换可以通过任何协议或技术实现。
在这个项目中,信令是通过声音执行的。信号序列如下:
对等端A通过将会话数据编码成音频音调来广播WebRTC连接。
附近的对等点(复数)捕捉声音发出的源头对等点A并解码WebRTC会话数据
尝试与A端建立连接的B端以音频应答响应。回复中包含对等方B的联系信息。另外,对等端B开始尝试连接到对等端A
对等端A从B端接收应答,解码传输的联系数据,允许B端连接
建立连接
所述信令序列不涉及信令服务器。因此,使用通过声音发出信号的应用程序可以由静态网页提供服务。唯一的要求是控制音频输出/捕获设备。
目前的方法有一个明显的局限性(特征),即只有附近的设备(例如在同一房间内)才能建立连接。此外,设备必须连接在同一个本地网络,因为NAT是不可用的。
声音发射/接收