Webrtc 对等连接:在本地网络中拨打电话
我正在与WebRTC合作,我想实现的是: User1以192.168.x.x打开浏览器 User2以192.168.x.x打开浏览器 同一页 用户1单击call,用户2在其屏幕上显示流 我已经用node和socket.io创建了一个信令服务器,并且我能够使用socket.io在用户之间交换消息 我将遵循以下步骤:Webrtc 对等连接:在本地网络中拨打电话,webrtc,signaling,Webrtc,Signaling,我正在与WebRTC合作,我想实现的是: User1以192.168.x.x打开浏览器 User2以192.168.x.x打开浏览器 同一页 用户1单击call,用户2在其屏幕上显示流 我已经用node和socket.io创建了一个信令服务器,并且我能够使用socket.io在用户之间交换消息 我将遵循以下步骤: 获取用户媒体 创建对等连接1-无ice服务器 在peerconnection上添加流 创建报价 通过套接字发送报价 接收报价并创建peerconnection2-无ice服务器 发送
- 获取用户媒体
- 创建对等连接1-无ice服务器
- 在peerconnection上添加流
- 创建报价
- 通过套接字发送报价
- 接收报价并创建peerconnection2-无ice服务器
- 发送答案
非常感谢您的一台ICE服务器至少还应该有一台stun服务器。我会使用'stun:stun.l.google.com:19302'| |'stun:23.21.150.121',即使从技术上讲你并不需要 但如果您没有ICE服务器,就不必担心收集候选人。一些可能发生的事情
- 在创建报价和创建答案之前,请确保将流添加到每个连接,它表示您获得了用户媒体,但并不是说您将其添加到了peerconnection
- 您没有设置本地和远程描述
- 在创建计算机时,应设置其本地描述
- 应答机应将其远程描述设置为产品描述,并将其本地描述设置为其创建的描述
- 确保将应答sdp发送到初始发售计算机,并且该发售计算机将其设置为其远程描述
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的工作原理
您应该发送ice候选者(即使两台计算机连接到同一台设备)。你可以在互联网上找到很多例子。只需添加一个简单的开放式stun服务器('stun:stun.l.google.com:19302'| |'stun:23.21.150.121')作为你的ICE服务器之一,在对等连接上完成icegatheringstate之前不发送流。嘿,我来试试看:你有防火墙吗?没有防火墙。莫思发表的这篇文章帮助我更好地理解了这一点。它现在可以正常工作了,正如预期的那样。STUN服务器对于获取您的公共IP非常有用。在这里,因为它仅限于局域网,所以不是。你是对的,只是推荐它可能会阻塞流,因为OP没有指定他的网络架构。事实上,我不理解向peerconnection添加ice候选者的部分。谢谢,很棒的文章