# tootallnate/java-websocket

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tootallnate-java-websocket).**

10,811 stars · 2,587 forks · Java · MIT

## Links

- GitHub: https://github.com/TooTallNate/Java-WebSocket
- Homepage: http://tootallnate.github.io/Java-WebSocket
- awesome-repositories: https://awesome-repositories.com/repository/tootallnate-java-websocket.md

## Description

Java-WebSocket is a collection of classes for implementing WebSocket clients and servers using pure Java. It provides a framework for hosting servers that manage connections via event-driven subclasses and tools for establishing client connections to remote servers.

The library includes a secure communication tool for encrypting traffic using the WSS protocol and a compression library that uses per-message deflate extensions to reduce transmitted data size. It supports the configuration of cipher suites to limit encryption protocols and ensure compatible communication.

The project enables bidirectional, non-blocking data exchange between clients and servers. Its capabilities cover secure network communication and bandwidth optimization to facilitate real-time data exchange.

## Tags

### Web Development

- [Real-Time Communication Protocols](https://awesome-repositories.com/f/web-development/real-time-communication-protocols.md) — Implements a bidirectional, low-latency communication system based on the standard WebSocket protocol.

### Networking & Communication

- [WebSocket Clients and Servers](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/websocket-implementations/websocket-clients-and-servers.md) — Provides a complete Java toolkit for implementing both the client and server sides of the WebSocket protocol.
- [WebSocket Servers](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/websocket-implementations/websocket-servers.md) — Provides a framework for hosting WebSocket servers that manage persistent, bidirectional communication channels.
- [WebSockets](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/websocket-implementations/websockets.md) — Enables non-blocking, bidirectional, event-driven data exchange between clients and servers. ([source](https://github.com/TooTallNate/Java-WebSocket/wiki/Drafts))
- [Non-Blocking Socket I/O](https://awesome-repositories.com/f/networking-communication/socket-networking/non-blocking-socket-i-o.md) — Utilizes non-blocking socket I/O to manage multiple concurrent connections without freezing execution threads.
- [WebSocket Clients](https://awesome-repositories.com/f/networking-communication/websocket-clients.md) — Offers a client implementation for establishing and managing bidirectional connections to remote WebSocket servers.
- [Byte Stream Framing](https://awesome-repositories.com/f/networking-communication/byte-stream-framing.md) — Implements the decoding of binary streams into discrete frames according to WebSocket protocol specifications.
- [WebSocket Frame Compression](https://awesome-repositories.com/f/networking-communication/data-compression/message-body-compressors/websocket-frame-compression.md) — Reduces bandwidth consumption by compressing individual WebSocket messages using deflate extensions. ([source](https://github.com/TooTallNate/Java-WebSocket/wiki/PerMessageDeflateExample))
- [Handshake Upgrade Handlers](https://awesome-repositories.com/f/networking-communication/handshake-upgrade-handlers.md) — Handles the initial HTTP handshake and protocol upgrade to establish bidirectional WebSocket streams.
- [WebSocket Payload Optimization](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-utilities/network-performance-optimizers/websocket-payload-optimization.md) — Improves performance by reducing the size of transmitted WebSocket messages through compression.

### Security & Cryptography

- [Secure Network Communication](https://awesome-repositories.com/f/security-cryptography/secure-network-communication.md) — Provides encrypted data transmission using the WSS protocol to secure network communication.
- [TLS Traffic Encryption](https://awesome-repositories.com/f/security-cryptography/tls-traffic-encryption.md) — Secures communication channels using TLS encryption to protect data during transit.
- [WebSocket Security](https://awesome-repositories.com/f/security-cryptography/websocket-security.md) — Supports secure communication using the WSS protocol and certificate management to protect data streams. ([source](https://github.com/tootallnate/java-websocket#readme))

### Software Engineering & Architecture

- [Event-Driven Callbacks](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-callbacks.md) — Provides an event-driven callback architecture to handle network events and protocol state changes.

### Data & Databases

- [Per-Message Deflate Extensions](https://awesome-repositories.com/f/data-databases/data-compression-algorithms/deflate-compressors/per-message-deflate-extensions.md) — Reduces transmitted data size by applying per-message deflate compression to individual WebSocket frames.
- [WebSocket Compression Tools](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-processing/general-data-utilities/compression-libraries/websocket-compression-tools.md) — Ships a set of tools for reducing transmitted WebSocket data size using per-message deflate extensions.
