While writing a series on how to control a web camera using an Arduino and WebRTC, I stumbled upon the need for a NodeJS implementation of WebRTC compatible with PubNub.

On my client I was using PubNub’s webrtc-sdk, so the path of least resistance was to take that same implementation and port it to work with NodeJS.

What I ended up with is the following package:

https://github.com/jeanlescure/node-pubnub-webrtc

It is available through NPM and using it in your NodeJS projects is as simple as installing:

$ npm install --save node-pubnub-webrtc

And implementing:

var phone = require('node-pubnub-webrtc')({
  number        : 'pubduino.server',
  publish_key   : PUBLISH_KEY,
  subscribe_key : SUBSCRIBE_KEY,
  ssl           : true
});

phone.receive(function(session){
  console.log('user connected');
});

phone.message(function(session, message){
  console.log('message received');
});

It should be noted that this implementation was built mainly to harness the RTCDataChannel, so if you’re looking to implement video and audio streams you’d need to find a way to shim the media streams to the PHONE object.

Happy coding!

Recent Blog Posts