ActiveManage Docs ← Back to activemanage.co.uk

Websockets Overview

WebSockets provide a persistent, two-way connection between the user's browser and the server. ActiveManage uses them for everything real-time: chat messages, live notifications, presence indicators, collaborative edits, dashboard refreshes.

Architecture diagram: Browser opens WebSocket to /ws endpoint → backend hub authenticates → user subscribed to channels matching their permissions → server pushes events as they happen → browser updates UI without polling

Why WebSockets

  • Push, not pull: Server pushes events instantly; no polling delay.
  • Bidirectional: Client can send commands too (e.g. typing indicator).
  • Low overhead: Single long-lived connection vs many short-lived requests.
  • Real-time UX: Chat that feels instant, notifications that arrive without refresh.

How the Platform Uses Them

  • Chat: Message delivery, read receipts, typing indicators.
  • Notifications: In-app notification badge updates.
  • Collaboration: When multiple users edit the same record, changes broadcast to others' open sessions.
  • Dashboards: Live-updating KPIs and charts.
  • Activity feeds: New events appear without page reload.
  • System alerts: Critical errors pushed to ops users.

Fallback to Polling

Some networks block WebSockets (corporate proxies, captive portals). The platform automatically falls back to long-polling or short-polling when the WebSocket fails to establish, so the user experience degrades gracefully.

Worked Examples

  • Chat app: Two colleagues messaging — each typed character flows to the server and back as a typing-indicator event; each sent message arrives in under 100ms.
  • Live ops dashboard: 24/7 status board with no refresh button — incident counts and queue lengths update in real time.
  • Multi-user record edit: Sales rep is editing a customer record; another user opens the same record and sees a banner “Alice is also editing this”. As Alice saves, the other user's view auto-updates.
  • Order-tracking page: Customer's order goes from “picked” to “packed” to “shipped” without them reloading.