首先,我只是明白它不会是纯粹的 p2p 功能,它根本不是套接字,出于安全和 DDOS 目的。
但是我很难弄清楚提供、回答、SDP、ICE、STUN 等内容。似乎有很多抽象和要求。
这是否意味着总是需要有一个集中 IP 地址的网站?
它会使实施 DHT 变得困难吗?
我认为它会是某种套接字等价物,但它似乎非常不同并且更复杂。
首先,我只是明白它不会是纯粹的 p2p 功能,它根本不是套接字,出于安全和 DDOS 目的。
但是我很难弄清楚提供、回答、SDP、ICE、STUN 等内容。似乎有很多抽象和要求。
这是否意味着总是需要有一个集中 IP 地址的网站?
它会使实施 DHT 变得困难吗?
我认为它会是某种套接字等价物,但它似乎非常不同并且更复杂。
您仍然需要一些中央服务器来建立对等点之间的连接。
服务器应该提供一些信号传输——它可以是 websockets、google appengine 通道或一些手工制作的东西。客户端将使用此传输与服务器进行通信,然后才能建立 p2p 连接。
此外,您需要一些 STUN 服务器来支持 NAT 穿越功能 - 对于那些在 NAT 后面工作的客户端(即家庭/办公室网络路由器)。你可以使用一些开源实现来安装你自己的 STUN 服务器。或者你可以使用谷歌的 STUN 服务器。
实际上,所有这些信息一般都适用于 WebRTC,但它特别适用于 RTCDataChannel。
在这里你可以找到如何使用 DataChannel 的好例子:https ://github.com/muaz-khan/WebRTC-Experiment/tree/master/DataChannel
在这里,您可以找到我使用 Erlang 和 Websockets 进行信号协议的视频聊天示例:https ://github.com/fycth/webrtcexample