How it works

The notification pipeline from game event to browser alert.

Connection

Your browser opens a WebSocket connection to the notification server. Unlike HTTP polling (which asks "anything new?" every second and wastes bandwidth on empty responses), WebSocket is a persistent two-way channel. The server pushes events the instant they're detected, giving sub-100ms delivery from game event to your notification tray.

Event pipeline

Detection

The backend monitors florr.io server activity and captures events: mob spawns, defeats, rift openings, shop changes. Each event is timestamped and enriched with metadata (name, rarity, region).

Broadcast

Events are pushed to all authenticated clients simultaneously. The server also maintains live state (alive mobs, open rifts, current shop, forges) queryable on demand.

Client filtering

Your browser checks each event against your active filters. If the rarity is enabled, the region matches, and the mob isn't blacklisted, a notification fires. Events always appear in the feed regardless of filter settings.

Browser notification

Uses the standard Web Notifications API. Notifications appear in your OS notification area even when you're in another application.

Authentication

Guest: Server creates a temporary session. Token stored in localStorage and auto-resumed on reload. Sessions expire after a fixed window.

Discord: Standard OAuth 2.0. Only accesses your username, user ID, and avatar. Session persists until logout. Shows your name in the community panel and grants role-based permissions.

Filtering

All filtering is purely client-side. The server sends every event; your browser decides what triggers a notification. This means:

  • The event feed shows everything, even filtered events.
  • Filter changes apply instantly without reconnecting.
  • You can always review missed events in the feed.

Available filters: server region (US, EU, ASIA), spawn whitelist, spawn blacklist, defeat whitelist, defeat blacklist.

Reconnection

If your connection drops (network interruption, server restart, or maintenance), a status overlay appears and the app retries automatically. On reconnection, your session resumes from the stored token and the server sends a fresh state snapshot.