我想在多个端点之间实现点对点通信,我可以在其中传输任何媒体(视频、语音或文本)流量。考虑端点是任何没有 UI 选项的 linux 板(Raspberry PI/beaglebone),并且位于 NAT 后面。端点可以直接与云服务器通信,但如果我想将任何数据直接传输到端点 (P2P),我该怎么做?
我不想每次都通过云服务器中继数据(对称NAT条件除外)来实现实时数据传输。我们正在寻找一些 C++/Python/NodeJS 库,它在信令服务器 (AWS) 的帮助下进行 P2P 通信。
有很多针对不同语言的 webrtc 库:
你当然可以对不同的同伴使用不同的语言,他们将能够相互交流。
WebRTC 尝试首先建立 p2p 连接,只有当 p2p 连接失败时才用 turn 中继数据。
如果两个对等点都在 nat 之后,则需要 stun 服务器来发现公共 IP,您可以使用 任何公共 IP .