我正在寻找node.js的webrtc实现,
以将数据从nodeJS 客户端传输到另一个 webRTC 对等点。
所以在我的例子中,nodejs 应用程序不是服务器而是客户端。
这样的节点模块存在吗?
我遇到了同样的问题,偶然发现了这两个宝石:
https://github.com/helloIAmPau/node-rtc 遗憾的是它缺少任何文档。
但是 https://github.com/js-platform/node-webrtc 对我来说似乎更可靠。
simple-peer
和怎么样rtc-everywhere
?
你应该看看licode。他们在 node.js 之上运行的开源 webrtc 多点视频会议桥。他们的服务器充当 webrtc 客户端,然后将音频/视频桥接到其他 webrtc 客户端。您也许可以重用他们使用 libnice(用于 ICE 协议)和 libsrtp(用于 SRTP 堆栈)的一些 c++ 代码,然后将其包装在您自己的 node.js 模块中以创建成功的 webrtc 客户端。
显然,您不需要他们的大部分代码,但我认为他们的服务器提供了一个很好的 SDP 工作示例,您需要将其发送回浏览器以建立成功的 webrtc 连接。
节点https://github.com/vmolsa/webrtc-native还有一个 WebRTC 包装器 。
支持数据通道和媒体流。
支持linux、mac和windows。
WebRTC 代码库经常同步。
更新:只有轻量级数据通道实现,支持 linux/mac/windows http://www.meshcommander.com/webrtc
可以使用 serverless -webrtc 包建立从 node.js 到浏览器的 WebRTC 数据连接,该包使用wrtc 包作为 WebRTC 实现。
不幸的是,当我尝试将 wrtc 模块与 PeerJS 或 EasyRTC 等信号库一起使用时,连接没有建立(错误消息是“ICE 失败”)。如果有人在使用 wrtc 之上的任何高级库方面取得了任何成功,我将不胜感激。
更新:下面的解决方案实际上并不向服务器提供视频。我不确定最好的(节点)解决方案是什么。在 C++ 中,试试 libJingle。
听起来 webrtc.io 将允许您创建一个对等节点应用程序。在此处查看 github 项目:https ://github.com/webRTC/webRTC.io 。
目前该项目似乎没有超活跃的开发,但它有 100 个分支,并且节点模块现在每月下载 500 次,所以看起来人们很关心。
<video id="local" autoplay="autoplay"></video>
<video id="remote" autoplay="autoplay"></video>
<script src="/webrtc.io.js"></script>
<script>
// note: make sure hostname available to all connecting clients
// (ie. probably not `localhost`)
rtc.connect('ws://yourserveraddress:8001');
rtc.createStream({"video": true, "audio":false}, function(stream){
// get local stream for manipulation
rtc.attachStream(stream, 'local');
});
rtc.on('add remote stream', function(stream){
// show the remote video
rtc.attachStream(stream, 'remote');
});
// more rtc callbacks are available
</script>
var webRTC = require('webrtc.io').listen(8001);
此解决方案提供从本地到 Web 的视频流。即不需要浏览器捕捉视频,它会将视频广播到客户端浏览器。有一个websocket 示例可以正常工作。
您的挑战实际上是构建和链接 webrtc.node,这一切都在上面的链接中进行了解释。
也看看这个,
Node.js 的 WebRTC 数据通道
https://github.com/nodertc
您可能想要使用此实现:https ://github.com/andyet/SimpleWebRTC
我已经将它用于我的项目,并且非常容易集成。