This document discusses building WebSocket applications in Java using JSR 356. It begins with an introduction to WebSockets and their advantages over traditional HTTP for interactive web applications. It then covers the JSR 356 specification for a Java API for WebSocket, including annotated and programmatic endpoints. The document provides examples of basic "hello world" clients and servers. It also discusses more advanced topics like custom payloads, URI template matching, security, and relationships with dependencies and Servlet APIs.