说:
但是通过webrtc逻辑连接,如何检查它是否真正通过p2p或中继服务器(转弯服务器)进行通信?我可以看到多个icecandidate互相交换,但不确定实际使用了哪一个!
对于情况1)我认为A和B应该使用本地Lan连接互相通信,但是如何确认呢!
对于情况2)它可能使用p2p连接或使用中继服务器进行媒体中继,我怎么知道实际使用的连接是什么?
答案 0 :(得分:2)
调用peerconnection.getStats()API。 然后迭代统计信息以找到当前活动的连接,找到指向本地和远程候选者的指针,并查看其候选类型字段。
https://webrtc.github.io/samples/src/content/peerconnection/constraints/处的示例显示了其中的大部分内容,但未显示候选人类型,仅显示了ip和端口。
答案 1 :(得分:0)
也许下面的方法不是很好的答案,但它应该可以工作:
如果A和B在同一个lan中,则在连接完成后,断开Internet连接,但将Lan与A和B保持连接,如果A和B可以成功通信,则必须由Lan进行通信,因为Internet已经断开。
如果A和B在不同的局域网中,只需卸下转弯服务器以连接A和B,如果A和B可以成功连接并通信,则A和B不应使用中继服务器p2p进行通信。否则,如果使用转弯服务器可以通信并且没有转弯服务器不能通信,则它必须在中继模式下使用转弯服务器。 (我认为这是伪造的p2p,因为中继服务器处于通信中间)。