| name | iii-realtime-streams |
| description | Pushes live updates to connected WebSocket clients via streams. Use when building real-time dashboards, live feeds, or collaborative features. |
Realtime Streams
Comparable to: Socket.io, Pusher, Firebase Realtime
Key Concepts
Use the concepts below when they fit the task. Not every stream setup needs all of them.
- iii-stream serves WebSocket connections on the configured stream port (default 3112)
- Install or enable streams with
iii worker add iii-stream
- Clients connect at
ws://host:{stream_port}/stream/{stream_name}/{group_id}
- stream::set / stream::update / stream::get / stream::list / stream::delete provide CRUD for stream items
- stream::send pushes events to all connected clients in a stream group
- Each stream item is identified by
stream_name, group_id, and item_id; data is the item payload
- Trigger types
stream, stream:join, and stream:leave let workers react to data changes and WebSocket subscriptions
Architecture
Function
→ trigger('stream::set', { stream_name, group_id, item_id, data })
→ trigger('stream::send', { stream_name, group_id, data })
→ iii-stream
→ WebSocket push
→ Connected clients at /stream/{stream_name}/{group_id}
iii Primitives Used
| Primitive | Purpose |
|---|
trigger({ function_id: 'stream::set', payload }) |