A demo of using WebRTC with no signaling server by using qr codes.
JavaScript HTML CSS
Switch branches/tags
Clone or download
Pull request Compare This branch is 2 commits ahead, 12 commits behind cjb:master.
Latest commit 21076bf Nov 4, 2017

README.md

Fork of serverless-rtc which was a demo that showed how to use WebRTC without a signaling server by performing the offer/answer exchange manually via IM/email/etc.

This fork builds on top of that demo by allowing you to exchange the offer/answer using QR codes as long as the two browsers have cameras that can see each other's screen.

Uses lz-string for compression, jsqrcode for scanning, and jquery-qrcode for displaying QR codes. So after cloning you also need to:

 git submodule init
 git submodule update

Blog post

Demo

ORIGINAL README:

serverless-webrtc

This is a tech demo of using WebRTC without a signaling server -- the WebRTC offer/answer exchange is performed manually by the users, for example via IM. This means that the app can run out of file:/// directly, without involving a web server. You can send text messages and files between peers.

This repository contains two different clients that can talk to each other:

  1. serverless-webrtc.js runs under node.js
  2. serverless-webrtc.html runs in Chrome or Firefox

Chat is fully interoperable between all of the above (Node, Chrome, Firefox) in any combination (tested with Chrome 35 and Firefox 29).

screenshot

For Node:

 λ npm install serverless-webrtc
 λ node_modules/serverless-webrtc/serverless-webrtc.js

Under Node, if you want to create a session instead of joining one:

 λ node_modules/serverless-webrtc/serverless-webrtc.js --create

For browsers:

In Chrome (but not Firefox), you'll need to run a local web server rather than just browsing to file:///, like this:

 λ cd serverless-webrtc
 λ python -m SimpleHTTPServer 8001 .
Serving HTTP on 0.0.0.0 port 8001 ...

and then browse to http://localhost:8001/.

Blog posts with more details:

http://blog.printf.net/articles/2013/05/17/webrtc-without-a-signaling-server

http://blog.printf.net/articles/2014/07/01/serverless-webrtc-continued

Browser demo link:

http://cjb.github.io/serverless-webrtc/serverless-webrtc.html

-- Chris Ball chris@printf.net (http://printf.net/)