WebSocket Lab

KotlinReactSpring BootTypeScriptDocker

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.