【发布时间】:2021-08-11 02:55:37
【问题描述】:
如果当我尝试从本地网络外部连接 webRTC 时,它会使用 STUN 服务器来交换 IP 地址、端口等信息,然后一旦两个客户端相互认识,它们就会直接连接,但是问题是,如果任何路由器默认阻止任何为 80 开放的端口,那么这两个客户端如何连接,在哪个端口上?
【问题讨论】:
-
stun服务器不用于交换ip地址和端口等信息。那是信令服务器。
如果当我尝试从本地网络外部连接 webRTC 时,它会使用 STUN 服务器来交换 IP 地址、端口等信息,然后一旦两个客户端相互认识,它们就会直接连接,但是问题是,如果任何路由器默认阻止任何为 80 开放的端口,那么这两个客户端如何连接,在哪个端口上?
【问题讨论】:
WebRTC 是一个开放框架,并不规定如何在通信对等方之间建立连接。建立连接本身涉及以下内容。
1-对等点发现是通过信令进行的,用于进行 SDP 交换和交换远程主机身份。信令可以通过任何传输方式完成 - UDP/TCP、任何协议以及通过任何标准 (SIP/XMPP) 或 HTTP/WebSockets 上的自定义应用程序级协议等。信令流量的端口选择对应用程序开发人员开放。
2-一旦对等点发现完成,并且在每个端点建立了PeerConnections,就可以发送媒体数据。根据 Peers 的网络拓扑(无论它们是在同一个主机网络中,还是它们在不同的网络中(在 Nated IP 地址之后),它们可以选择连接,以便通过 UDP 或 TCP 发送媒体流量。对于一个更受保护的环境,对等点甚至可能需要一个 TURN 服务器来代表对等点中继媒体流量。同样,媒体端口的选择是开放的,可以通过最终应用程序来决定。 我是在网上找到的,希望对你有帮助
【讨论】: