Skip to main content

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

EventTriggerEffect on Display
zscloud:meeting.status_updateRoom state changesUpdates availability banner (green/red/yellow)
zscloud:booking.updateBooking created, modified, cancelledRefreshes schedule view
zscloud:device.onlineDevice comes onlineUpdates device status indicator
zscloud:device.offlineDevice goes offlineShows warning indicator
screenshot_requestAdmin requests screenshotCaptures and uploads current screen
device_disconnectAdmin disconnects deviceReturns to pairing screen

Room States on Display

StateDisplay
Available NowGreen banner — room is free
Available UntilGreen banner with countdown — free until next booking
Booked / In UseRed banner — room is occupied or reserved
UpcomingYellow 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