在WebRTC中检查端口是否已打开以进行流式传输

时间:2014-09-10 06:59:20

标签: webrtc

我已经在WebRTC的帮助下构建了一个视频聊天应用程序,它运行正常。

但是,我希望用户知道他在发送媒体流时是否有任何问题,我想告诉他他的网络阻止了媒体流所需的端口,我该怎么做?

我做了一些研究,发现首先打开实时端口(RTP),然后交换UDp数据包,客户端有没有办法检测到这部分可能出现的错误?

1 个答案:

答案 0 :(得分:2)

端口状态和打开是通过与ICE服务器通信的ICE客户端完成的。如果没有良好的链接(ICE保证这一点),那么Ice Connection状态将在RTCPeerConnection中变为失败。

要查看要打开和工作的端口,您可以查看双方之间交换的SDP。

编辑:

要查看由于候选人而打开的端口,您必须解析候选行。通常,您将只使用UDP候选。

这是一个候选示例。

a=candidate:1204296370 1 udp 2122260223 192.168.0.13 49353 typ host generation 0

候选人的格式为

a=candidate:<ID> <component Type> <transport type> <priority ranking> <ip address> <port> <type>

您还可以获取在媒体行中本地获取的最初支持的端口(我添加了:

m=audio<media> 49353<port> RTP/SAVPF<proto> 111 103 104 0 8 106 105 13 126 <rtpformats>

Here is more on how to parse through WebRTC SDPs