WebRTC provides the API’s to implement P2P connections between clients, like browsers.
Probably the best article on WebRTS is this: WebRTC in the real world: STUN, TURN and signaling - the signal level is extremely high.
Below I keep a bunch of links to specs and software that I’ve looked at.
Support for WebRTC in browsers is restricted to Chrome and Firefox, but both Edge and Safari have it under development.
Personally, I believe that in the 2017⁄2018 we should be able to use this technology with ease.
WebRTC and Socket.IO
Most examples of WebRTC focus on audio and video, but the RTCDataChannel is also very interesting because it allows a “socket-io”-like interface directly between peers. In fact, there is even a Socket.IO P2P project already, so you can use the same API everywhere.
If you plan on using WebRTC, you might want to have your own STUN/TURN servers, with proper authentication. If you plan on multi-user video, then a Multipoint Control Unit is a wise investment.
Ready-to-use Conference software
- Spreed WebRTC: all-in-one solution for multi-user video conferencing. Core server in Go, client powered by Node.js and Websockets. Includes support for Desktop Sharing with Chrome and Firefox. Requires a separate TURN server, but recommends CoTurn (see next section). They sell a turn-key hardware/software solution, Spreedbox, that looks really good…;
- BigBlueButton - current version only uses WebRTC for audio. There is a HTML5-client in the works with full WebRTC support. Probable the most tailored to classrooms, lots of useful tools (chat, presentations with annotations, voice control, pools, audio, video, SIP dial-in). I’ve been using this software since 2010-ish;
- BlueJeans: Comercial, doens’t mention price, so you probably can’t afford it, but impressive set of supported software.
In case you need a STUN/TURN server, your best bet is probably coturn. It has everything that you’ll ever need.
An (worse) alternative is restund. The main developer doesn’t have a repository available.
Multipoint Control Unit and Selective Forwarding Units
Apart from commercial MCU’s (like the Cisco MCU), there are a couple of OSS projects you can look at:
- the Lynckia project has Licode that includes a MCU, Erizo;
- Janus: the general purpose WebRTC Gateway - looks good, small and simple;
- Medooze has a MCU, with an openSource variant, that should support WebRTC. It does seem to require a SIP server though…