使用WebRTC使node.js应用程序成为PEER



因此,我有一个web应用程序,它可以生成大量的颜色信息缓冲区,我想将这些信息发送到本地网络中另一台机器上运行的节点应用程序。Web套接字对我来说似乎不够快。我想使用UDP,似乎WebRTC是从浏览器实现这一点的唯一方法。需要注意的是,WebRTC只是PEER对PEER(浏览器对浏览器)。我想,我可以使用node-webkit来模仿成为我的另一个"PEER"。在我的节点应用程序中,我可以处理"信号",并将其设置在与我的web应用程序的RTCPeerConnection中。因此,我可以将我的数据从我的网络应用程序发送到我的节点应用程序(本地网络)。在某些情况下,我有一台运行本地软件的计算机来驱动灯具,我想使用网络应用程序来控制灯光。

简而言之,我如何从浏览器到节点webkit应用程序进行RTCPeerConnection?

如有任何帮助,我们将不胜感激。

谢谢!

-Jake

Node RTCPeerConnection是一种尝试(当前WIP),旨在为Node.js创建符合规范的RTCPeerCnnection实现,完全使用JavaScript,不使用本机C或C++代码。这使浏览器对等端能够与非浏览器(Node.js)对等端进行通信。

但你还不能把它用于生产。


然后,我们还有wrtc(node-wertc),它为NodeJS提供了一个本地模块,支持符合标准的webrtc功能的子集。特别是PeerConnection和DataChannel API。

太多人对wrtc有问题。由于它必须下载大量源代码并构建它,但在某些平台上运行很长一段时间后才发现它失败了。不幸的是,它没有附带本期中描述的任何预构建包


您可以使用webrtc的谷歌实现,也可以使用名为openWebrtc的最新实现(由爱立信提供)。openWebRTC的开发人员非常自豪能够在各种硬件上运行他们的实现,如树莓派和iOS设备。


对我来说效果最好的是电子webrtc(它反过来使用预构建的电子),以获得更好的兼容性。它创建了一个隐藏的Electron进程(它基于Chromium,所以WebRTC支持很棒!),并与该进程通信以在Node.js中启用WebRTC。这增加了很多开销。

它旨在与RTCDataChannels一起使用,因此不支持MediaStream API。


其他资源:
https://github.com/webrtcftw/goals/issues/1

更新2019

目前,解决这个问题的最好、最简单的方法是使用webrtc模块。检查样品以获取灵感。该模块实现了您所希望的功能,使用N-API实现,并使用Canvas模块从客户端流中组成新的视频。希望这将帮助那些在未来面临这个问题的人。

相关内容

最新更新