说:A和B在同一个Lan,A和B在不同的Lan。但是通过webrtc逻辑连接,如何检查它是否真的通过p2p或中继服务器(转向服务器)进行通信?我可以看到多个……
也许下面的方法不是很好的答案,但它应该工作:
如果A和B在同一个局域网中,连接完成后,断开互联网连接,但保持Lan与A和B,如果A和B能够成功通信,则必须由Lan进行通信,因为互联网已断开连接。
如果A和B在不同的局域网中,只需卸下转向服务器即可连接A和B,如果A和B可以连接成功通信,则A和B不应该使用中继服务器p2p进行通信。否则,如果使用转弯服务器可以通信而没有转弯服务器不能,那么它必须在转发服务器中使用转发模式。 (我认为这是假的p2p,因为中继服务器正处于通信中)。
ICE连接启动后(即在iceconnectionstatechange上连接或完成),调用peerconnection.getStats()API。 然后迭代统计信息以查找当前活动的连接,找到指向本地和远程候选者的指针并查看其candidateType字段。
样品在 https://webrtc.github.io/samples/src/content/peerconnection/constraints/ 显示大部分内容但不显示candidateType,只显示ip和端口。