Use node.js as a WebRTC peer?

2020-02-16 20:01发布

问题:

What modules are in existence to use node.js as a peer in WebRTC? I'd like to use WebRTC in a more client/server fashion than P2P for its apparent ability to send packets unreliably. (AKA, I don't want the huge delay TCP makes by guaranteeing packet arrival with data in order)

If I have to use a stripped-down browser page as a server, that would perhaps work... however, it would really be sub-optimal. Node.js would make things much smoother, and probably more reliable too.

Thanks!

回答1:

Have a look at the Erizo component of Licode (WebRTC MCU). It has a stream controller and webrtc controller written in c++ with a js interface. It might help you getting a idea or two.



回答2:

There is a c++ interface for WebRTC. WebRTC is based on the libjingle project but uses the JSEP (Javascript Session Establishment Protocol) instead of XMPP for sending STUN/TURN information for NAT tunneling. The two projects were in the process of being merged when I looked at this a while back so compiling/linking it was a PITA. This may have been improved last year.

The goal would be to expose the native API for WebRTC as a node module with the node addon api and package it as an npm module that works like the in-browser API. The cross-browser polyfill will show you how it should look.

There's a lot of cool stuff you could do with this (call recording, SIP connectors, .torrent extensions to the browser, etc.) I really encourage you to try this!



回答3:

There is now a Node implementation of WebRTC, with the exception of MediaStreams.

https://github.com/js-platform/node-webrtc



回答4:

The most relevant package i've found was http://js-platform.github.io/node-webrtc/ i managed to build it and play with it a little bit... The developer is very helpful, i think it's your best bet right now



回答5:

The solution is to use libjingle or licode/erizo. Both of them require compilation but erizo provides a NodeJS interface. Libjingle was created by Google.

Unfortunately, you have to compile each library and there are no binary packages for Debian, Ubuntu or other platforms.



回答6:

Take a look at PeerJS: Simple peer-to-peer with WebRTC.

You need PeerJS-server for signaling.

The guide: http://peerjs.com/



回答7:

I used Node js with socket io and have success with it

There are many tutorials online