Anyone who has been following my blog will know that WebRTC has become my latest passion. I’ve written four or five articles on the subject and have at least ten more inside of me waiting to come out. Actually, ten might be an understatement. The deeper I dig, the more I discover that I want to write about.
As part of my exploration, I have been scouring the Internet for articles that explain WebRTC at both the 50,000 foot and one inch levels. While I have found plenty of good stuff that speaks about WebRTC at a high level, I have yet to find a really good nuts and bolts approach. Yes, there are a few attempts out there, but they are either poorly written, vague when they need to be specific, or just plain wrong.
So, I was pleased when I stumbled upon Andrii Sergiienko’s book, WebRTC Blueprints (http://www.packtpub.com/webrtc-blueprints/book). In its 160 pages, WB details everything from creating a simple point-to-point video call to WebRTC on mobile platforms. And when I say detail, I mean detail. Every chapter is chock-full of javascript and html to create and demonstrate every concept the book presents.
I can’t say that I’ve had a chance to actually implement every example program in the book, but I did take the time to create, compile, and deploy all the code in Chapter One. This involved creating a WebRTC signaling server and a webpage that sends and receives video and chat. The fact that I had both the client and server sides to play with make this book unique amongst most other resources I’ve explored. As someone who wants to completely understand WebRTC, I want to work with all aspects and not just little bits and pieces.
Now, like everything in life, WB has its pros and cons.
Pros:
- The example code explores all the important aspects of WebRTC. In addition to the point-to-point video application in Chapter One, you get examples of the WebRTC Data API, Media Streaming and Screen Casting Services, Security and Authentication, and Mobile Platforms.
- There are deep dives into supplementary technology such as ICE, STUN, and TURN. Although I didn’t do this myself, Chapter Two has you installing an open source STUN server.
- The code is documented section-by-section.
- The book details how you would use third-party libraries and SDKs such as twilio (cloud) and voxeo (IVR).
- Differences between WebRTC on Firefox and Chrome are presented.
Cons:
- You cannot approach this book as a WebRTC beginner. It gets down and dirty from the get-go.
- The code could have been documented more completely. Although there is quite a bit of linear documentation throughout the examples, the author does not present flowcharts as to what the applications are supposed to do. For Chapter One, I created my own to understand exactly what was going on.
- The book could do a better job of speaking directly to the WebRTC API outside the context of the examples. For instance, it would have been nice if the author explained function calls such as RTCIceCandidate.
- The signaling server code is in a language called Erlang. Maybe it’s just me, but until I came upon this book, I was completely unfamiliar with Erlang. Many times, I wished that the author chose a more common language like java.
Cons withstanding, I appreciate that this book exists. Granted, I had to work harder than I wanted to, but I can honestly say that I am much smarter about WebRTC now than I was prior to opening the book. It’s my hope that there is a second edition that addresses some of the cons. That would make this worthwhile book that much better.
Very nicely written review for a WebRTC book. Thanks for highlighting the pros and cons !!
I read Tsahi Levi’sr review for the book too, looks like a nice guide for advance users.
Great article! You do following WebRTC & digging deep!
I’ve been following webrtc for a while. Here’s what I find a complete example from Google: https://github.com/GoogleChrome/webrtc/tree/master/samples/web/content/apprtc
the apprtc.py could be ran on Google App Engine or local dev server provided by Google App Engine SDK. The python file will server the entire html to connect 2 peers. I’ve tried to make it print out some info along the way. It will be fun!
I’ve seen that code, Robert. It’s great that people are willing to share what they know with the rest of the world.
Another great book that might be easier for a beginner is WebRTC Integrator’s Guide by Altanai published by PacktPub.com