WebSocket Lab
A WebSocket client paired with a purpose-built testing server. Connect to any ws:// or wss:// endpoint, send and receive messages, and inspect traffic — no server setup required.
What it does
The frontend lets you connect to WebSocket endpoints, send timestamped messages, and organize connections into collections. It supports first-message authentication, multiple endpoint tabs per connection, and JSON import/export. Everything persists to localStorage automatically.
The backend provides a set of testing endpoints that cover common WebSocket patterns:
- Echo — mirrors messages back, with or without a server timestamp
- Auth — bearer token and first-message authentication flows
- Slow responses — configurable delays for testing timeouts
- Streaming — an incrementing counter stream
- Disconnect — drops the connection after N messages
- Chat — a multi-client broadcast room
Stack
- Frontend: TypeScript, React 19, Vite, Tailwind CSS
- Backend: Kotlin, Java 21, Spring Boot 3.4, Spring WebFlux
- Infrastructure: Docker, docker-compose, Makefile
Motivation
A few years ago I worked on a personal project that allowed users to join a game room. I wanted to keep track of what users are still online and the way I wanted to do this was via WebSockets. Unfortunately, I did not find a good testing tool that I could use while implementing my WebSocket endpoint(s). I created this tool hoping that it will help some people overcome the challenges that I had.