wrtc-full

0.0.67 • Public • Published

Preamble

Forked from https://github.com/modeswitch/node-webrtc MediaStream APIs are supported and partly implemented. Fake file audio devices are used instead of the hardware audio devices, enabling running this multiple times on one machine.

This open-source project provides a native module for NodeJS that supports a subset of standards-compliant WebRTC features. Specifically, the PeerConnection and DataChannel APIs.

This project relies on precompiled WebRTC binaries.

Getting Started

Prerequisites

  • python2
  • git
  • pkg-config
  • libncurses-devel
  • libssl-devel
  • libnss-devel
  • libexpat-devel

Debian/Ubuntu

To install prerequisites with the apt-get package manager,

apt-get install python2.7 git-all pkg-config libncurses5-dev libssl-dev libnss3-dev libexpat-dev

CentOS/Fedora/RHEL

To install prerequisites with the yum package manager,

yum install python git pkgconfig openssl-devel ncurses-devel nss-devel expat-devel

OSX

  • XCode

To install prerequisites using the homebrew package manager,

brew update
brew install git openssl pkg-config openssl homebrew/dupes/ncurses nss expat

Some of these libraries may be installed by default. Package names for these libraries may differ between distributions.

Install

The easiest way to install is via npm:

npm install wrtc-full

If you want to work from source:

git clone https://github.com/alexanderb14/node-webrtc-full
cd node-webrtc-full
npm install

Troubleshooting

Error while loading libtinfo.so.5 on Linux

Add a symlink to libncurses:

    sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5

Some linux distros default to Python3 and the build process fails

This is most common on Arch Linux. Set python2 as the default for npm:

    npm config set python python2

The node.js package for my distro is too old

Follow the instructions here: https://github.com/joyent/node/wiki/installing-node.js-via-package-manager

Tests

Unit tests

Once everything is built, try npm test as a sanity check.

bridge.js

You can run the data channel demo by node examples/bridge.js and browsing to examples/peer.html in chrome --enable-data-channels.

usage:

node examples/bridge.js [-h <host>] [-p <port>] [-ws <ws port>]

options:

-h  host IP for the webserver that will serve the static files (default 127.0.0.1)
-p  host port for the webserver that will serve the static files (default 8080)
-ws port of the Web Socket server (default 9001)

If the bridge and peer are on different machines, you can pass the bridge address to the peer by:

http://<webserver>/peer.html?<sockertserver:port>

By default the bridge will be the same IP as the webserver and will listen on port 9001.

ping-pong-test.js

The ping-pong example creates two peer connections and sends some data between them.

usage:

node examples/ping-pong-test.js

Readme

Keywords

Package Sidebar

Install

npm i wrtc-full

Weekly Downloads

0

Version

0.0.67

License

BSD

Last publish

Collaborators

  • alexanderb14