Richard Clark's Building Reactive Networked Applications

Topics covered at HTML5-WEBSOCKETS-01-02

Dates coming soon

Two years ago, the world was taking an early look at WebSockets and HTML5. Today, WebSockets is a finished standard and HTML5 has been frozen as a Candidate Recommendation. It’s time to put these technologies to work!

HTML5 introduces new high-performance communications features such as WebSockets, Cross Document Messaging, XMLHttpRequest Level 2, and Server-Sent Events. These provide ways to optimize your web applications’ performance and implement real-time communication that was previously the domain of desktop applications.

And while we have plenty of best practices for deploying the older HTTP-based communications technologies (AJAX, Reverse AJAX/Comet), deploying WebSockets requires some thought in how to secure, scale, and manage the network.

In this highly practical, two-day course you’ll learn to create WebSocket applications from the people who helped create the standard. You’ll design and build modern client-server applications for the web, deploy your application securely, and make it work with common Enterprise messaging architectures. You’ll also be ready to build communicating applications for mobile.

At the end of this class, you will be ready to build high-performance, scalable, and secure applications such as:
- Trading System Clients
- Online Betting Applications
- Social Chat Solutions
- Performance Monitoring Applications
- Sports and News Broadcasting Applications

Learn how to:

Upon completion of this course you will know how to create your own scalable, real-time Web applications using the Kaazing WebSocket Gateway and other WebSocket platforms.

In particular, you will be able to:

  • Design complete client-server applications using WebSockets
  • Use modern JavaScript techniques to construct and manipulate client-side user interfaces
  • Write code to fetch data using either HTTP or WebSockets
  • Write code to fetch data across multiple origins
  • Debug client behaviors and the network messaging
  • Use tools to analyze web application performance
  • Build clients for a typical enterprise message bus
  • Decide when and why to use HTML5 Communication and its implications on your architecture
  • Secure your application deployment
  • Implement reliable communications for mobile applications, even under less than ideal network conditions
  • Prepare your deployment for high availability and scalability
  • Deploy your application even on legacy browsers

About the Author

Richard Clark

Richard Clark, M.A. (@rdclark) manages Kaazing University and is an experienced software developer and instructor. He has taught for Apple and Hewlett-Packard, written immersive simulations, developed multiple high-performance web applications for the Fortune 100, and has published Apple iOS applications.

Thanks to our partners

The following is a detailed breakdown of all the course modules. Attendees will receive electronic copies of the presentations, lab files, and starter code.

Part 1: Core Skills for Application Development

  • The New World of Client-Side Web Applications
  • Lab: Examining a Non-Communicating Client Application
  • Core JavaScript Review
  • Lab: Working with Modern JavaScript Features
  • Enhancing Interactivity: DOM Changes and Visual Transitions
  • Lab: Manipulating the Client UI
  • Lab: JavaScript Debugging Techniques

Part 2: Communications Approaches for Client-Server Web Applications

  • Using HTTP and XMLHttpRequest
  • Lab: Fetching Data via AJAX
  • HTTP Security
  • Lab: Fetching Data Cross-Origin
  • Introducing WebSockets
  • Lab: Receiving Data via WebSockets

Part 3: Simple Client-Server Apps with WebSocket

  • Setting Up Your WebSocket Development Environment
  • Lab: Deploying a WebSocket Client App

Part 4: Enterprise Application Architecture

  • Enterprise Messaging Overview
  • Lab: Installing and Running the Kaazing Gateway Locally (to extend an enterprise message bus)
  • Lab: Assembling a Messaging Client for an Existing Service
  • Implementing Two-way Communications
  • Lab: Assembling a Command-driven Client and Server

Part 5: Securing your Application

  • Designing Secure Applications
  • Security: Authentication and Authorization
  • Lab: Adding Basic Authentication for a Service
  • Lab: Adding Cross-Origin Resource Sharing

Part 6: Using WebSockets in Mobile Applications

  • Deploying WebSockets on Mobile Networks
  • Securing Communications
  • Lab: Enabling Secure WebSockets
  • Implementing Mobile Communications
  • Lab: Handling Intermittent Connectivity

Part 7: Deployment for production

  • Compatibility Strategies
  • High Availability
  • Lab: High Availability
  • Integrating an Alternate Web Server
  • Lab: Web Server Integration


This course is designed for software developers interested in designing, creating, and deploying real-time HTML5 web applications. It is valuable to intermediate and advanced developers that already have experience in developing web applications.

To get the most out of the course, you should be familiar with HTML and JavaScript. Prior exposure to any of these concepts will also be helpful: - Cloud computing (Amazon EC2)
- UNIX/Linux command scripting
- Ajax and Reverse Ajax


The following software is recommended for all participants’ systems:

  • Adobe Acrobat reader (view the lab PDFs)
  • Any one of the following operating systems with at least 500MB of free hard disk space
    -Mac OS X (10.x or later)

  • All of the following web browsers:
    Apple Safari 5.0 or later (http://www.apple.com/safari)

    • Google Chrome 5.x or later (www.google.com/chrome)
    • Microsoft Internet Explorer 9.0 (or IE8 on Windows XP)
      -Mozilla Firefox 3.6 or later (http://mozilla.com/firefox) with Firebug add-on (http://getfirebug.com/)
      -Opera 10.6 or later (http://www.opera.com/)
  • Web server
    Recommended: Python version 2.7.x, which includes the packaged SimpleHTTPServer for easy web serving (http://www.python.org/)
    ! Note: Mac OS X already includes a version of Python. The instructor will also bring an installable version of Python, which can be installed during the course. Alternatively, attendees can use Apache or Microsoft IIS, but Python is demonstrated in the course.

  • A good text or HTML editor, such as:
    -Adobe Dreamweaver (CS5 has an optional HTML5 Pack)
    -TextMate (Mac OS)

Bring your own hardware

Delegates are requested to bring their own laptop to this course as Skills Matter does not provide this. If you are unable to bring a laptop for the course, please contact us on +44 207 183 9040 or email us.