0%

Develop interactive real-time communication applications with WebRTC

  • Create easy-to-use real-time communication applications using WebRTC platform
  • Learn the best practices behind traversing networks, signaling, security, and data transport in WebRTC applications
  • Use full mesh networks, partial mesh networks, and multi point control units to manage your applications

In Detail

The book begins by teaching you how to capture audio and video streams from the browser using the Media Capture and Streams API.

You will then create your first WebRTC application capable of audio and video calling. The book will also give you in-depth knowledge about signaling and building a signaling server in Node.js. While being introduced to the RTCDataChannel object, you will learn how it relates to WebRTC and how to add text-based chat to your application. You will also learn to take your application further by supporting multiple users through different technologies and scale its performance and security. This book will also cover several theories using full mesh networks, partial mesh networks, and multipoint control units. By the end of this book, you will have an extensive understanding of real-time communication and the WebRTC protocol and APIs.

What You Will Learn

  • Understand the underlying platform that WebRTC is built upon
  • Create applications that utilize your web camera and microphone
  • Build your very own signaling server from scratch
  • Enable your applications to communicate with multiple users
  • Share data and files across peer-to-peer connections using WebRTC
  • Implement best practices to secure and make a WebRTC application perform
  • Get to know more about multi-peer mesh networks for more than two users
  • Learn the best practices behind traversing networks, signaling, security, and data transport in WebRTC applications
  • Use full mesh networks, partial mesh networks, and multipoint control units to manage your applications

Table of Contents

  1. Learning WebRTC
    1. Table of Contents
    2. Learning WebRTC
    3. Credits
    4. About the Author
    5. About the Reviewers
    6. www.PacktPub.com
    7. Support files, eBooks, discount offers, and more
    8. Why subscribe?
    9. Free access for Packt account holders
    10. Preface
    11. What this book covers
    12. What you need for this book
    13. Who this book is for
    14. Conventions
    15. Reader feedback
    16. Customer support
    17. Downloading the example code
    18. Errata
    19. Piracy
    20. Questions
    21. 1. Getting Started with WebRTC
    22. Audio and video communication today
    23. Enabling audio and video on the Web
    24. Camera and microphone capture
    25. Encoding and decoding audio and video
    26. Transportation layer
    27. Session management
    28. Creating web standards
    29. Browser support
    30. Compatibility with Chrome, Firefox, and Opera
    31. Compatibility with Android OS
    32. Compatibilty with Apple
    33. Compatibility with Internet Explorer
    34. Using WebRTC in your browser
    35. Applications enabled by WebRTC
    36. Self-test questions
    37. Summary
    38. 2. Getting the User's Media
    39. Getting access to media devices
    40. Setting up a static server
    41. Creating our first MediaStream page
    42. Constraining the media stream
    43. Constraining the video capture
    44. Handling multiple devices
    45. Creating a photo booth application
    46. Modifying the media stream
    47. Self-test questions
    48. Summary
    49. 3. Creating a Basic WebRTC Application
    50. Understanding UDP transport and real-time transfer
    51. The WebRTC API
    52. The RTCPeerConnection object
    53. Signaling and negotiation
    54. Session Description Protocol
    55. Finding a clear route to another user
    56. Session Traversal Utilities for NAT
    57. Traversal Using Relays around NAT
    58. Interactive Connectivity Establishment
    59. Building a basic WebRTC application
    60. Creating a RTCPeerConnection
    61. Creating the SDP offer and response answer
    62. Finding ICE candidates
    63. Adding streams and polishing
    64. Running your first WebRTC application
    65. Self-test questions
    66. Summary
    67. 4. Creating a Signaling Server
    68. Building a signaling server
    69. Setting up our environment
    70. Getting a connection
    71. Testing our server
    72. Identifying users
    73. Initiating a call
    74. Answering a call
    75. Handling ICE candidates
    76. Hanging up a call
    77. Complete signaling server
    78. Signaling in the real world
    79. The woes of WebSockets
    80. Connecting with other services
    81. XMPP
    82. Session Initiation Protocol
    83. Self-test questions
    84. Summary
    85. 5. Connecting Clients Together
    86. The client application
    87. Setting up the page
    88. Getting a connection
    89. Logging in to the application
    90. Starting a peer connection
    91. Initiating a call
    92. Inspecting the traffic
    93. Hanging up a call
    94. A complete WebRTC client
    95. Improving the application
    96. Self-test questions
    97. Summary
    98. 6. Sending Data with WebRTC
    99. Stream Control Transmission Protocol and data transportation
    100. The RTCDataChannel object
    101. Data channel options
    102. Sending data
    103. Encryption and security
    104. Adding text-based chat
    105. Use cases
    106. Self-test questions
    107. Summary
    108. 7. File Sharing
    109. Getting a file with the File API
    110. Setting up our page
    111. Getting a reference to a file
    112. Breaking down a file into chunks
    113. Making chunks readable
    114. Reading and sending the file
    115. Putting it together on the other side
    116. Showing progress to the user
    117. Self-test questions
    118. Summary
    119. 8. Advanced Security and Large-scale Optimization
    120. Securing the signaling server
    121. Using encryption
    122. Using an OAuth provider
    123. Supporting mobile devices
    124. Introduction to mesh networking
    125. Types of network meshes
    126. Everyone to everyone
    127. Star network
    128. Partial mesh
    129. Limits of mesh networking
    130. Video conferencing with more users
    131. The future of conference calls
    132. Self-test questions
    133. Summary
    134. A. Answers to Self-test Questions
    135. Chapter 1, Getting Started with WebRTC
    136. Chapter 2, Getting the User's Media
    137. Chapter 3, Creating a Basic WebRTC Application
    138. Chapter 4, Creating a Signaling Server
    139. Chapter 5, Connecting Clients Together
    140. Chapter 6, Sending Data with WebRTC
    141. Chapter 7, File Sharing
    142. Chapter 8, Advanced Security and Large-scale Optimization
    143. Index
3.235.68.180