Docs · DevCatz

WebSocket

Run Laravel Reverb, Sockudo, Centrifugo, Mercure or NATS on your Mac or PC, watch the traffic in an inspector and test it with a built-in client.

Real-time features need a server that holds the connections. WebSocket runs one on your computer, shows who is connected and what flows through, and has a test client so you can poke a channel without writing code. Open WebSocket in the rail. It runs on macOS and Windows.

The servers

You can run one server of each kind:

Server Protocol Port Notes
Laravel Reverb (shared) Pusher 8080 At wss://reverb.<tld>. A small Laravel app on DevCatz’s PHP 8.2 or later
Sockudo Pusher 6001 On the domain ws. Runs in DoCatz, see below
Centrifugo Centrifugo 8100
Mercure Mercure (server-sent events) 8200
NATS NATS 9222 WebSocket, 4222 TCP

Pusher-protocol servers work with Laravel Echo and pusher-js as they are.

Centrifugo, Mercure and NATS come from their GitHub releases (macOS tarballsWindows x64 zips, SHA-256 checked); Reverb is installed with Composer on the PHP of the Runtimes page.

Sockudo publishes no Windows build (Linux only), so on Windows it runs from its official image (sockudo/sockudo) in DoCatz’s container engine (WSL 2). Its button reads Install in DoCatz…, with DoCatz’s logo: DevCatz pulls the image there, starts and stops it, and keeps the same ports, domain, keys and .env lines as on a Mac. The page header says in DoCatz, More ▾ gets Open in DoCatz, and DoCatz lists the container under DevCatz Services. Updates pull the newer image; uninstalling removes the container and the image. No DoCatz yet? The page shows DoCatz is not installed with Download & Install DoCatz first, and with DoCatz but no engine set up yet, DevCatz opens DoCatz and says so. Laravel Reverb speaks the same Pusher protocol and runs natively, if you would rather skip containers.

The server page

Each server’s page has these tabs:

Tab What it shows
Inspector Clients, Channels, Messages/s, and the Members of presence channels
Test client Connect and subscribe like your app would, then publish
Connection Host, port, keys and ready-made lines
Sites The sites that use this server
Logs The server’s log

The test client speaks each protocol:

  • Pusher (Reverb, Sockudo): public, private and presence channels, with the auth these need.
  • Centrifugo: connects with a token.
  • Mercure: subscribes with EventSource.
  • NATS: SUB and PUB.

Next to the tabs sit Admin, a More ▾ menu and Site servers — servers that sites run themselves, with Start, Stop, Restart and Test connection.

The site WebSocket tab

A site gets a WebSocket tab when DevCatz finds a real-time library in it, or Reverb:

Language Libraries found
Node.js Socket.IO, ws, uWebSockets.js, NestJS / Hono / Fastify / crossws WebSockets, Laravel Echo, pusher-js, Centrifuge, NATS
PHP Reverb, Ratchet, Swoole, Workerman, Mercure, phpcent
Python Channels, python-socketio, Flask-SocketIO, websockets, Tornado
Go gorilla, coder, gobwas, Melody, Fiber

The tab lists the site’s Real-time libraries and has Test connection. Then:

  • Laravel Reverb → Run with the site runs reverb:start for this site on a managed port, at wss://reverb.<site> — so each Laravel app can have its own Reverb instead of sharing one.
  • Choose a server… points the site at one of the DevCatz servers.
  • Write to .env writes the REVERB_*, VITE_REVERB_* or Pusher lines.

Laravel Broadcasting

Laravel sites also get a Laravel Broadcasting card: the site’s broadcast events, its channel routes, a few checks of the setup, and Send test broadcast to see an event arrive in the inspector.

Settings → WebSocket

Setting Default What it does
Services Every server, and whether it starts with DevCatz
Allowed origins * Which origins may connect
Test client: events kept 200 How many events the test client remembers

Installed servers also appear in the menu bar (the tray on Windows) with Start / Stop / Restart and Open in DevCatz.

Last updated 2026-11-03