- 我试图了解创建具有文本、音频和视频交换功能的应用程序的正确工具是什么。作为服务器端工具,我想使用 node.js。
- 有很多示例向您展示了客户端代码,但是服务器端呢?我知道,WebRTC 服务器仅用于信令目的,但我找不到描述性指南帮助我找出如何说:“嘿,这是这个人,他想和你说话,所以这是他的 IP”或类似的东西。
- 如何确保我正在建立直接连接?如何建立最高效的连接?我知道有一些 NAT 遍历协议,但是我如何明确地使用/启用它们?
- 我可以通过连接多对多对等点并拥有一些信令/身份验证服务器来创建类似 Skype 的分布式网络吗?或者也许只使用一些对等点作为服务器来发送信号?
问问题
2370 次
2 回答
4
以上都可以通过Flash Media Server(或者开源的Red5)等软件获得。如果您想使用 Node.JS,您将需要创建 Node 服务(消息队列、媒体服务器),或者使用一些已经可用的服务,并让 Node.JS 处理它们之间的交互。因此,所有这些都将是必需的:
- 带有 Web 套接字的节点 Web 服务
- 节点/其他消息代理 (mq)
- 节点/其他媒体服务器(FMS、Red5)
- 可选,用于多个 Node Web 服务 (Redis) 的缓存服务
您可以选择 Flash,它对 RTMFP/RTMP 有很好的支持。如果你真的想要 WebRTC,你必须为 p2p 发现创建一个 STUN 节点服务,它连接到缓存服务来处理授权。
RTMFP 是一个选项,webrtc 也是。大多数性能取决于您如何定义性能:质量?潜伏?应该如何偏向?如果您想要低延迟,请选择 p2p。如果您想要录制功能,可以使用 rtmp 或节点 webrtc 中继。
是的,但您很可能需要一个团队来做到这一点:)
于 2013-01-17T11:15:05.960 回答
2
找到了几乎所有的答案:)
- 服务器端工具没有任何限制,因此您可以使用任何您想要的工具。Node.js 非常适合。出于通信目的,可以使用 WebSockets 或 XHR,但对任何其他都没有限制。
- 在创建连接的过程中,浏览器会生成一些包含所有需要数据的事件。您只需将其发送到双方并在那里进行处理。还有提供/回答系统,因此只有在双方同意的情况下才能进行连接。
- 默认情况下,浏览器将尝试建立最佳连接。如果无法完成,它将回退到 TURN,它通过服务器转换数据。
- DataChannels 将有可能实现。
于 2013-01-20T16:58:52.343 回答