WebRTC – a lot more than just a killer of Skype.

 

I have recently come across WebRTC (RTC stands for Real Time Communication) and found it to be a very neat piece of technology.

 

WebRTC is a suite of protocols, standards and APIs that allow real time browser-to-browser communication on a peer-to-peer basis (well, not quite exactly that if there are firewalls involved, but you get the point).

 

This doesn’t just mean instant chat, video messaging, file exchange – i.e. things that the likes of Skype are already do well.  This means a lot of other things, and it is this extension on the usual Skype-like functionality that is the really exciting part.  Basically we now have the ability to bring to life any kind of instant interaction between two web browsing experiences across the world – what I do in my browser while I surf the net determines what you see in your browser!

 

As one “lateral” example of what you could do with WebRTC, imagine a scenario (for example in video streaming) where a lot of clients are downloading the same file from the same server frequently.  Instead of having multiple copies of this file in multiple caches, one cache per client, we can now have a distributed virtual cache that is peer-to-peer, more precisely, browser-to-browser.  This frees up space, unclogs bandwidth and ultimately speeds up the streaming experience.

 

Here is the page with more details on WebRTC: http://www.webrtc.org

 

And here is an interesting podcast on how WebRTC works and what is being done with it: http://hanselminutes.com/418/learn-webrtc-with-lisa-larson-kelley

 

Some interesting key facts:

  • WebRTC project is heralded through cooperation of Chrome, Mozilla and Opera.

  • WebRTC was originally being implemented as part of the more general HTML5 framework, however before the actual release of HTML5, WebRTC has been spun out as a separate project in its own right.

  • Other cool things that originally started out as part of the HTML5 work but were made into separate projects are WebWorkers and WebSocket.  These are interesting in their own right and probably warrant separate dedicated blog posts some time soon.