Real-Time Behavior
Meeting room displays receive live updates through the Realtime Service via Socket.IO WebSocket connections.
Connection Setup
const socket = io('wss://websocket-service.zenspace.io/realtime', {
auth: { token: deviceJWT },
transports: ['websocket']
});
Events
| Event | Trigger | Effect on Display |
|---|---|---|
zscloud:meeting.status_update | Room state changes | Updates availability banner (green/red/yellow) |
zscloud:booking.update | Booking created, modified, cancelled | Refreshes schedule view |
zscloud:device.online | Device comes online | Updates device status indicator |
zscloud:device.offline | Device goes offline | Shows warning indicator |
screenshot_request | Admin requests screenshot | Captures and uploads current screen |
device_disconnect | Admin disconnects device | Returns to pairing screen |
Room States on Display
| State | Display |
|---|---|
| Available Now | Green banner — room is free |
| Available Until | Green banner with countdown — free until next booking |
| Booked / In Use | Red banner — room is occupied or reserved |
| Upcoming | Yellow banner — meeting starts soon |
Polling Fallback
In addition to WebSocket events, displays poll the REST API at regular intervals as a fallback:
- Availability check every 60 seconds
- Full schedule refresh every 5 minutes
- Device heartbeat every 2 minutes
Next Steps
- Branding & Customization — Visual theming
- Kiosk Mode — Locked-down deployment