2016-05-16 20 views
0

我写了一个简单的代码来测试RTCPeerconnection信号上RTCPeerconnection

peer = new RTCPeerconnection(...); 
peer.onicecandidate = function(evt){ 
    console.log(evt.candidate); 
    // into the console 
    // RTCIceCandidate {candidate: "candidate:... 1 udp ", sdpMLineIndex:0, sdpMid:"data"} 
    // RTCIceCandidate {candidate: "candidate:... 2 udp ", sdpMLineIndex:0, sdpMid:"data"} 
} 

我希望它发送给信令服务器,但我接受它的2倍和2个不同的值。

我是否记录了所有候选值?

当我从信令服务器收到候选信息时,是否需要接收关于同一对等体的所有值?

我有太多,localDescription // {type: "offer", sdp: "v=0↵o=- 6483...48 2 IN IP4 ...}

我是否将其发送到信令服务器并接收其他同行的描述?

回答

1

我认为你需要在WebRTC上做更多的阅读,对于单个PeerConnection,可能有很多ICE候选者,你通常通过某个信令服务器将它发送给远程对等,没有意义将它存储在服务器中,因为它们可能会在一段时间后过期。

this and this可能是阅读基本知识的好地方。

+0

我的想法是:我得到我的主机信息(sdp和候选人),我记录到数据库中。如果其他主机连接,我从服务器接收信息,这样我可以设置RTCPeerconnection,并通过dataChannel我可以交换消息惠普其他同行...我是如此错误? –

+0

我不认为你可以存储冰的候选人,他们可能超时15分钟后... – mido

+0

好吧,现在我有点混乱。 我相信,如果host_A和host_B想要沟通,他们必须知道sdp和候选信息,因为在那些信息中有公共ip和其他有用的信息,并且交换这些信息的方式是使用Ajax和Sent-Server Event信令机制)。 我搜索了很久,有些人对我说,我需要一个交换信息的信号机制。 –