Stream & Broadcast
STREAM pushes a value to all subscribers on a named channel. BROADCAST sends to multiple channels in one call. Connect from the browser via the OQL Signal WebSocket server.
| Verb | Description |
|---|---|
STREAM ?value TO "channel" | Push value to all subscribers on a single channel |
BROADCAST ?value TO "ch1" AND "ch2" | Push to multiple channels simultaneously |
STREAM — push an update
NEW JSON OBJECT
OPEN NEST
SET "type" AS "price_update"
AND SET "symbol" AS "OCALT"
AND SET "price" AS "142.50"
CLOSE NEST
SET ?event
AFTER STREAM ?event TO "market"
Try it ›
Browser subscription
// Client-side JavaScript
const ws = new WebSocket('wss://signal.oql.ocalt.com/my-namespace/market');
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('Update:', data);
};
BROADCAST — multiple channels at once
NEW JSON OBJECT
OPEN NEST
SET "event" AS "deploy"
AND SET "version" AS "1.2.0"
CLOSE NEST
SET ?msg
AFTER BROADCAST ?msg TO "admins" AND "devops" AND "logs"
Try it ›
BROADCAST and STREAM are distinct: BROADCAST takes multiple channel names in one verb and sends in parallel; multiple STREAM calls would be sequential AND-chained calls.Real-time dashboard with CRON
DEFINE CRON "dashboard-refresh" ON SCHEDULE "* * * * *"
OPEN NEST
WEATHER "Cape Town" SET ?cpt
AND CURRENCY "USD/ZAR" SET ?fx
AFTER NEW JSON OBJECT
OPEN NEST
SET "weather" AS ?cpt
AND SET "fx" AS ?fx
AND SET "ts" AS !NOW
CLOSE NEST
SET ?payload
AFTER STREAM ?payload TO "dashboard"
CLOSE NEST