Chat Test Client

1:1 messaging (Phase 1 + 2): settings, connection, inbox and requests, send, accept, history, catch-up. One user per browser tab. Signed in as —
not connected
Settings not fetched yet.
9:41offline

Live events

Events are applied with the documented rules: merge by message id, render in seq order, apply state only from an event at or above the highest applied, status never returns to pending, unknown conversation is fetched first, a gap fetches history after the mark. Pause to hold events; resume dropping them to simulate lost events, then the next event (or "Catch up now") recovers the gap.

Applying events live.

Diagnostics

No thread open.

Raw command

Any method and payload over the connection, e.g. accept your own request (1403), send as the receiver of a pending request (1409), an unknown method or a bad payload (1401).

Log

Notes for local use

Serve this file over http (for example npx http-server test -p 8765) rather than opening it from disk, and open one tab per user (the login is kept per tab).

Gateway calls blocked by the browser: with NODE_ENV=development every origin is allowed; under any other NODE_ENV the page's origin must be listed in ALLOWED_ORIGINS in the gateway's process environment.

Connection fails with only "transport closed" and no close code: the chat server refuses browser connections whose origin it does not know. For a local server, start it with the page's origin allowed, e.g. the environment variable CENTRIFUGO_CLIENT_ALLOWED_ORIGINS="http://localhost:8765" on the container (space-separated for several). The login itself needs nothing extra: the token travels inside the connect command and the server forwards it as the Authorization header.

Not built yet, so shown disabled: Ignore, Block, the archived requests list, and read marks (opening a thread does not clear its unread count).