T. *_*ung 3 javascript ios webrtc swift
我正在尝试为 iOS 设置一个 cordova 插件,它无需使用任何服务器即可实现 webrtc 功能,并且仅在本地网络上使用。我知道有这个插件,它看起来很有前途,但我有一些问题。我的计划是不使用 TRUN、STUN 或任何类型的信令服务器。
也许您现在会想:“好吧,这是不可能的。没有信令等于没有连接。 ”但让我先解释一下。正如此处和 此处所指出的,可以避免使用 TRUN、STUN 或 ICE 服务器。我认为这是开始我的项目的好方法,但仍然有一个悬而未决的问题。如果没有任何类型的信令,设备将如何找到彼此(在示例中它们使用 Node.js 服务器)?现在我正在考虑使用包含所有必要信息的二维码的想法。
这个想法是,进入房间的每个人都必须扫描 RP 上的 QR 码,然后设备就知道 RP 的 IP、端口等,并且将建立与 DataChannel 的 WebRTC 连接。
我已经寻找答案好几天了,但由于事实(或至少是一个原因),iOS 本身不支持 WebRTC,因此没有很多可在 iOS 上运行的 WebRTC 示例,也没有一个用于本地网络。
所以我的问题是:我走的路是正确的还是这根本不可能?(我在任何地方都没有找到这方面的例子,但如果我把我读过的所有帖子放在一起,我认为这应该是可能的。)
首先,TURN和STUN不是信令服务器。信令服务器是通常与后端服务器相关的术语,让您在建立连接之前在两个对等点之间中继消息。因此,信令服务器用于建立连接。连接建立后,信令服务器在通信中不再发挥作用,除非您打算对连接参数进行任何更改。
另一方面,TURN 和 STUN 服务器在连接建立过程中使用。它可以帮助两个对等点找到彼此的直接路径。因此,当连接建立后,对等点可以直接相互通信,并且不再需要信令服务器中继消息。
现在回到你的问题,简短的回答是,不,你的计划不完整。
为了使其正常工作,您需要进行以下一些更改:
QR 码不足以传达所有必需的信息。根据这个答案,他们可以存储大约 4kb 的最大数据。因此,通过所有候选人是不够的。
更不用说 WebRTC 需要两个设备共享候选者。因此,您需要在 Raspberry PI 上安装显示屏和二维码扫描仪。
您可能想要探索 Wifi 等替代方案,以允许设备和 Raspberry Pi 之间进行双向数据共享。设置完成后,Wifi 连接将充当信令服务器。
虽然我不太熟悉 iOS 或 Raspberry Pi。因此,如果您不确定选择什么,我建议您单独询问有关沟通渠道选择的问题。请记住,您需要 Raspberry Pi 能够在短时间内与设备通信,以便建立 WebRTC 连接。
来到 STUN 和 TURN 服务器,你也许可以在不使用它们的情况下逃脱。我见过一些情况,我的应用程序能够在没有 STUN 和 TURN 服务器的情况下与本地网络内的对等点建立连接。
但是,我强烈建议您至少使用 STUN 服务器。它们通常是免费提供的。Google 和 Firefox 还提供了自己的 STUN 服务器,您可以在任何 WebRTC 应用程序中使用它们。您可以在互联网上搜索以获取他们的详细信息。
仅当两个对等点位于 NAT 之后时才需要 TURN 服务器。在这种情况下,STUN 服务器有时无法找到它们之间的直接路由,您需要 TURN 服务器来中继音频/视频/消息流。
您在 Raspberry Pi 和手机(黑色箭头)之间建立 WebRTC 通道的计划对我来说似乎不错。它将帮助您在需要时在两部手机之间建立进一步的连接。
但是,如果您最终决定在 Raspberry Pi 上实现 Wifi 之类的功能,则 WebRTC 连接可能是多余的。毕竟,您可以使用 Wifi 来回传递数据,并且实际上并不需要额外的 WebRTC 通道层来做到这一点。
| 归档时间: |
|
| 查看次数: |
4756 次 |
| 最近记录: |