PeerConnection:在本地网络中进行呼叫

时间:2014-05-06 15:07:35

标签: webrtc signaling

我正在玩WebRTC,我想要的是:

User1以192.168.x.x

打开浏览器

User2以192.168.x.x打开浏览器 同一页

用户1单击呼叫,user2在其屏幕上显示流。

我创建了一个带有node和socket.io的信令服务器,我可以使用socket.io房间在用户之间交换消息。

我正在遵循的步骤是:

  • 获取用户媒体
  • 创建peerconnection1 - 没有冰服务器
  • 在peerconnection上添加流
  • 制作优惠
  • 通过套接字发送优惠
  • 收到要约并创建peerconnection2 - 没有冰服务器
  • 发送答案

我还在“onicecandidate”和“onaddstream”中进行了一些登录,以查看它们何时被调用,并且在“onaddstream”中我创建了视频元素。

当我按下通话按钮时,我在另一台计算机上看到视频元素变黑但我看不到任何视频都没有音频。 当然,我错过了一些重要的步骤,

有人能告诉我必须采取的步骤才能拨打正确的电话并交换所有必要的数据以显示另一方的流吗?

非常感谢

2 个答案:

答案 0 :(得分:4)

A STUN server is used to get an external network address.
TURN servers are used to relay traffic if direct (peer to peer) connection fails. 

参见此图描述了peerconnection如何工作

webRTC Basics

enter image description here

答案 1 :(得分:0)

您仍应至少为其中一个ICE服务器引用了一个击晕服务器。我会使用&st; stun:stun.l.google.com:19302' || '晕眩:23.21.150.121',即使你在技术上不需要它。

但如果您没有ICE服务器,则无需担心收集候选人。可能发生的一些事情。

  • 确保在创建商品和创建答案之前将流添加到每个连接,它表示您获得了用户媒体,但没有将其添加到您的对等连接中
  • 您没有设置本地和远程描述
    • 提供计算机时应在创建时设置其本地描述
    • 应答计算机应使用产品说明设置其远程描述,并使用他们创建的描述设置其本地描述
    • 确保将答案sdp发送到初始提供的计算机,并且该提供的计算机将其设置为远程说明。

Streams 不会 发送给对方,除非您添加所需的流,创建说明,然后相应地设置其本地和远程描述。

如果这不起作用,您应该发布该页面的代码。