No description
  • Java 41.7%
  • TypeScript 37%
  • CSS 10.1%
  • HTML 9.5%
  • JavaScript 1.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ralph Schaer 43acfa0834 upgrade
2026-10-04 10:06:41 +02:00
chat upgrade 2026-10-04 10:06:41 +02:00
datachannel upgrade 2026-10-04 10:06:41 +02:00
gauge upgrade 2026-10-04 10:06:41 +02:00
iss upgrade 2026-10-04 10:06:41 +02:00
map-cursors upgrade 2026-10-04 10:06:41 +02:00
maps upgrade 2026-10-04 10:06:41 +02:00
pg-orders upgrade 2026-10-04 10:06:41 +02:00
poll upgrade 2026-10-04 10:06:41 +02:00
presence-dashboard upgrade 2026-10-04 10:06:41 +02:00
recovery-lab upgrade 2026-10-04 10:06:41 +02:00
shared-poll-votes upgrade 2026-10-04 10:06:41 +02:00
simple-chat upgrade 2026-10-04 10:06:41 +02:00
simple-chat-2 upgrade 2026-10-04 10:06:41 +02:00
smoothie upgrade 2026-10-04 10:06:41 +02:00
snake upgrade 2026-10-04 10:06:41 +02:00
tennis-delta upgrade 2026-10-04 10:06:41 +02:00
whiteboard upgrade 2026-10-04 10:06:41 +02:00
.gitignore Refactor and upgrade demos 2026-09-05 07:48:04 +02:00
config.json Upgrade and add more demos 2026-06-27 18:47:29 +02:00
docker-compose.yml Upgrade and add more demos 2026-06-27 18:47:29 +02:00
LICENSE initial commit 2025-08-01 14:36:48 +02:00
README.md Refactor and upgrade demos 2026-09-05 07:48:04 +02:00

jcentserver-client demos

Runnable examples for jcentserver-client and Centrifugo 6.

Demo What it demonstrates Server port Client port
chat Multi-room chat with cached history 8080 5173
datachannel WebRTC data-channel signaling 8080 5173
gauge Live gauge telemetry 8080 5173
iss ISS tracking with a server-side subscription 8080 5173
map-cursors Ephemeral map-subscription cursors and server-side clear 8094 4177
maps Live vehicle positions on a map 8080 5173
pg-orders Transactional PostgreSQL stream broker and state recovery 8096 4179
poll Persistent live poll 8080 5173
presence-dashboard Presence, presence stats, and join/leave events 8093 4176
recovery-lab Reconnect and publication recovery 8092 4175
shared-poll-votes HMAC-authorized shared-poll tracking and publishing 8095 4178
simple-chat Minimal real-time chat 8080 5173
simple-chat-2 Chat with participant counts and typing indicators 8080 5173
smoothie Scrolling CPU telemetry charts 8080 5173
snake Multiplayer snake game 8080 5173
tennis-delta Plain versus Fossil delta-compressed match feeds 8091 4174
whiteboard Collaborative pointer, touch, and pen drawing 8080 5173

Requirements

  • Java 25
  • Node.js 20.19+ or 22.12+
  • Docker Compose
  • A MapTiler API key for iss and maps

Run a demo

Start the shared Centrifugo and PostgreSQL services from the repository root:

docker compose up -d

Then start one server and its matching client in separate terminals. For example:

cd chat/server
./mvnw spring-boot:run
cd chat/client
npm install
npm run dev

On Windows, use mvnw.cmd instead of ./mvnw. The older demos share ports 8080 and 5173, so run only one of those pairs at a time. The six Centrifugo 6.8 feature demos use the dedicated ports in the table and can run together.

For iss and maps, create a client .env.local file containing:

VITE_MAPTILER_API_KEY=your-key

Every client also supports optional endpoint overrides:

VITE_SERVER_URL=http://localhost:8080
VITE_CENTRIFUGO_BASE_ADDRESS=localhost:8000

pg-orders requires the PostgreSQL service from the root Compose stack. Centrifugo creates its cf_stream_* functions and controller schema when it starts.