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.
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.
- 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.
- 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.