This book will take you step by step through building a fully featured webinar application based on real-time technologies. By the end of the book, you'll have an application with two way video/audio chat, text chat, polling, and more. The example application is built in Node.js, but no experience is necessary in order to complete the tutorials. We'll show you the code each step of the way, and there is complete sample code available online for each chapter so that you can pick up working code at any point in the book.
Throughout the book you will gain valuable experience with a professional grade publish/subscribe tool. We will build the application using PubNub to demonstrate the key concepts of real-time messaging with an industry leading platform. However, we will also show you examples of how to accomplish the same functionality using other publish/subscribe frameworks so that you can make your own choice. We will use these techniques to implement a simple text chat feature, allowing webinar attendees to ask questions and cast votes. These same basic techniques are what you need to know to build real-time data dashboards, social media applications, Machine-to-Machine application messaging, and more.
One of the most fascinating parts of the HTML5 standard is inclusion of WebRTC - Web Real Time Communications. This evolving standard allows you to integrate video and audio chat directly into the browser, without requiring the user to download any plugins or install additional code. The video and audio channels of WebRTC are Peer-to-Peer (P2P) and fully encrypted. This allows you to build secure online communication applications even for privacy sensitive industries like telemedicine, online education, and corporate communications. But WebRTC is about more than just video chat. A DataChannel feature also allows you to build P2P file exchanges or networking applications directly in the browser. We will walk you through the basics of developing applications that take advantage of the cutting edge real-time communication capabilities of WebRTC.
Arin Sime is a software developer, entrepreneur, and the lead author and disturbed visionary behind this book. Arin is also editor of RealTimeWeekly, a free weekly newsletter focused on real-time technologies. Arin has degrees in Electrical Engineering and IT Management from the University of Virginia. Arin founded AgilityFeat and splits his time between the US and Costa Rica when he is not speaking at conferences and user groups about software development. - Arin Sime, Lead Author
Allan is a talented Node.js developer with experience building applications for social media, training, and gaming industries. He has developed an intimate knowledge of WebRTC through many test sessions of "Can you hear me now?" and canceling echoes. Allan led the architecture and development of the sample applications in this book, and patiently put up with late night testing sessions and feature changes from Arin. Allan lives in Costa Rica but would welcome your invitations to visit San Francisco anytime. - Allan Naranjo, Lead Developer
Mariana Lopez is the lead UX and interaction designer behind the webinar tutorial in this book. She started her career as a software developer in Costa Rica and then earned her Masters degree in Human Computer Interaction from Carnegie Mellon University, studying in the US and Portugal along the way. She has led design projects for a wide variety of industries including social media applications, logistics, online education, training, and more. Mariana is also a professor at the Universidad Veritas in Costa Rica. - Mariana Lopez, Lead Interaction Designer
Daniel Phillips is the lead designer at AgilityFeat, and is an avid surfer in Costa Rica when he is not designing web and mobile applications. Daniel is responsible for the CSS and design of the tutorials in this book, in particular creating the responsive designs to allow the webinar application to work on a variety of devices. Daniel studied marketing at the University of Barcelona. - Daniel Phillips, Lead Designer