使用 node.js 作为 WebRTC 对等点?
Posted
技术标签:
【中文标题】使用 node.js 作为 WebRTC 对等点?【英文标题】:Use node.js as a WebRTC peer? 【发布时间】:2013-06-21 03:14:36 【问题描述】:存在哪些模块可以在 WebRTC 中使用 node.js 作为对等点?我想以比 P2P 更多的客户端/服务器方式使用 WebRTC,因为它明显能够不可靠地发送数据包。 (AKA,我不希望 TCP 通过保证数据包按顺序到达而造成巨大的延迟)
如果我必须使用精简的浏览器页面作为服务器,那可能会起作用……但是,它确实不是最理想的。 Node.js 会让事情变得更顺畅,而且可能也更可靠。
谢谢!
【问题讨论】:
Node.js WebRTC client的可能重复 【参考方案1】:看看Licode (WebRTC MCU) 的 Erizo 组件。它有一个流控制器和 webrtc 控制器,用 c++ 编写,带有 js 接口。它可能会帮助您获得一两个想法。
【讨论】:
【参考方案2】:现在有一个 WebRTC 的 Node 实现,但 MediaStreams 除外。
https://github.com/js-platform/node-webrtc
【讨论】:
【参考方案3】:WebRTC 有一个 c++ 接口。 WebRTC 基于 libjingle 项目,但使用 JSEP(javascript 会话建立协议)而不是 XMPP 来发送 STUN/TURN 信息以进行 NAT 隧道。当我不久前看到这两个项目时,这两个项目正在合并的过程中,所以编译/链接它是一个 PITA。这可能在去年有所改善。
我们的目标是将 WebRTC 的 native API 公开为带有 node addon api 的节点模块,并将其打包为一个类似于浏览器内 API 的 npm 模块。跨浏览器 polyfill 将向您展示它的外观。
你可以用它做很多很酷的事情(通话录音、SIP 连接器、浏览器的 .torrent 扩展等)我真的鼓励你试试这个!
【讨论】:
【参考方案4】:我找到的最相关的包是http://js-platform.github.io/node-webrtc/我设法构建它并使用它一点点......开发人员非常乐于助人,我认为这是你现在最好的选择
【讨论】:
【参考方案5】:解决方案是使用libjingle 或licode/erizo。它们都需要编译,但 erizo 提供了 NodeJS 接口。 Libjingle 由 Google 创建。
不幸的是,您必须编译每个库,并且 没有 用于 Debian、Ubuntu 或其他平台的二进制包。
【讨论】:
【参考方案6】:看看PeerJS: Simple peer-to-peer with WebRTC。
您需要PeerJS-server 来发送信号。
导游:http://peerjs.com/
【讨论】:
抱歉,WebSockets 并没有完全使用与 WebRTC 相同的协议。不过,感谢您的回答! WebSockets 使用 TCP。 WebRTC 的类似解决方案允许与 WebSockets 相同的功能,除了通过 UDP 将是最佳的。【参考方案7】:我使用 Node js 和 socket io 并取得了成功
网上有很多教程
【讨论】:
Socket.io 是在客户端和服务器之间进行双向通信的一种方式,但据我所知,它不使用 WebRTC。此外,据我所知,Socket.io 仅支持基于 TCP 的传输,这正是选择 WebRTC 的原因。以上是关于使用 node.js 作为 WebRTC 对等点?的主要内容,如果未能解决你的问题,请参考以下文章