For this to be cool, you need to click the "yes you can use my webcam" button above

What is this?

This is a demo of some things you can do with webRTC.

What it does
  • First, it uses AngularFire to connect to a real-time Firebase database to get a list of users on this page
  • Then, it uses a service called PeerJS to simplify and abstract away some of the details of creating an RTCPeerConnection to ever other person viewing this page
  • Then, using that RTCPeerConnection it establishes a RTCDataChannel w/ each peer, enabling communication of arbitrary data (in this case chat messages and file uploads)
  • Then, using navigator.getUserMedia it asks you to caputure your webcam and it also establishes a p2p video connection with every other person viewing this page
  • It uses that video connection as the "live" avatar next to your name in your chat messages
  • When you send a chat message or upload files, it sends it directly to each peer connected. no messages, files, or video ever go through a server
TL,DR: video/text chat & p2p file sharing using no servers (except to get a list of who's online) and no plugins (no flash)

Read the Source on github. If you have any questions email me at my github username at gmail.

Online Users
You
{{me.userId}}
{{user.firebaseRef.name}}
{{user.userId}}
Shared Files
Download {{file.name}}

{{file.size |bytes}} from {{file.uploader.firebaseRef.name || message.uploader.userId}}

Chat

{{message.author.firebaseRef.name || message.author.userId}}

{{message.message}}