问题描述
大家好,我最近在做webRTC网页间的视频通讯用的ASP.NET现在的情况是这样的我的信令服务器已经实现了,服务器使用的superwebsocket,客户端使用的websocket在经过请求视频通讯、响应、一系列操作之后成功实例化了RTCPeerConnection,并交换了信道、音频、视频的一些信息,到了互相发送ICE准备建立连接时,我发现onicedidate事件并没有被触发也就直接导致了没能建立连接我怀疑是我的网络NAT失败了,不能够直接p2p,但是如果用服务器中转呢?我看资料的意思是有专门的服务器不用我做,可是,我郁闷的地方就是,我不做,怎么中转,怎么连接,我现在就卡在链接这块儿,有没有做过的大神,或者会的大神给指点一下,非常感谢
解决方案
解决方案二:
也可以聊聊他的实现,我怎么才能够实现两边的通讯我现在知识就停留在实例化RTCPeerConnection对象时,指定stun地址互相发送自己的sdp互相发送自己的ice信息这样就可以建立链接
解决方案三:
解决方案四:
--STUN还有一个扩展,即TURN服务器。除了实现STUN的全部功能外,当双方由于某种原因(如防火墙)还是没法建立点对点连接时,TURN服务器可以起到中转的作用,让双方可以绕过防火墙进行通讯(事实上绝大多数防火墙被配置为允许从内部向外主动发起的连接)。--TURN服务器需要你自己建。
解决方案五:
引用3楼fungchou的回复:
--STUN还有一个扩展,即TURN服务器。除了实现STUN的全部功能外,当双方由于某种原因(如防火墙)还是没法建立点对点连接时,TURN服务器可以起到中转的作用,让双方可以绕过防火墙进行通讯(事实上绝大多数防火墙被配置为允许从内部向外主动发起的连接)。--TURN服务器需要你自己建。
非常感谢您的回复,也就是说我现在在实例化RTCPeerConnection的时候传入的那个链接只是一个stun,如果当我的网络无法直接创建p2p的时候,就需要一个服务器中转,也就是turn,这个turn需要我自己创建是这样的吗?
解决方案六:
引用4楼wushuitaolove的回复:
Quote: 引用3楼fungchou的回复:
--STUN还有一个扩展,即TURN服务器。除了实现STUN的全部功能外,当双方由于某种原因(如防火墙)还是没法建立点对点连接时,TURN服务器可以起到中转的作用,让双方可以绕过防火墙进行通讯(事实上绝大多数防火墙被配置为允许从内部向外主动发起的连接)。--TURN服务器需要你自己建。非常感谢您的回复,也就是说我现在在实例化RTCPeerConnection的时候传入的那个链接只是一个stun,如果当我的网络无法直接创建p2p的时候,就需要一个服务器中转,也就是turn,这个turn需要我自己创建是这样的吗?
引用
iceServersOptionalAnarrayofRTCIceServerobjects,eachdescribingoneserverwhichmaybeusedbytheICEagent;thesearetypicallySTUNand/orTURNservers.
是的。你可以同时传入STUN和TURN服务器。