15

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
    Possible duplicate of [Node.js WebRTC client](http://stackoverflow.com/questions/18872712/node-js-webrtc-client) – user Feb 12 '17 at 07:48

7 Answers7

3

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.

Gnagy
  • 1,432
  • 16
  • 26
2

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

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

photicSphere
  • 811
  • 6
  • 7
1

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!

user2300902
  • 89
  • 1
  • 4
0

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

thanpolas
  • 848
  • 1
  • 8
  • 20
0

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.

-4

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

You need PeerJS-server for signaling.

The guide: http://peerjs.com/

shawnzhu
  • 7,233
  • 4
  • 35
  • 51
  • 2
    Sorry, but WebSockets don't quite use the same protocol as WebRTC. Thanks for answering, though! –  Jun 26 '13 at 22:07
  • WebSockets use TCP. A similar solution for WebRTC which allows the same functionality as WebSockets except via UDP would be optimal. – Willem Jul 11 '13 at 22:31
-6

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

There are many tutorials online

Jacek Pietal
  • 1,980
  • 1
  • 18
  • 27
  • Socket.io is one way to communicate bidirectionally between the client and the server, but it doesn't, as far as I know, use WebRTC. Besides, Socket.io, as far as I know, only supports TCP-based transports, which is exactly why WebRTC was chosen. – icktoofay Mar 15 '14 at 04:15
  • does not address media transmission – desperado06 Mar 14 '23 at 13:46