ready-bell.com:3137 · UDP

Better asynchronous communication.

Ready Bell makes asynchronous workflows more responsive. A single UDP packet to ready-bell.com:3137 announces that an operation has completed, allowing clients to check for results before their next scheduled poll.

Click Listen. Click Notify. Watch Ready appear.

disconnected

            
disconnected

            

Try it in your own terminals

  1. Open two terminals and start Netcat (nc) in UDP mode in both:
    nc -u ready-bell.com 3137
  2. In terminal 1, enter:
  3. In terminal 2, enter:
  4. Watch for Ready in terminal 1.

How it works

A Listener sends Listen <uuid> <seconds>. Later, a Notifier sends Notify <uuid> when that UUID's result is ready. Ready Bell sends a single Ready <uuid> packet to every Listener currently waiting on it.

Sequence diagram of the Ready Bell protocol between a Listener client, the server, and a Notifier client Listener ready-bell.com:3137 Notifier Listen uuid 30 Registered uuid ip port 30 Notify uuid Ready uuid Notified uuid 1

Protocol reference

Ready Bell speaks UTF-8 plain-text messages over UDP. Each datagram carries exactly one command or response.

Initiator Message Response Meaning
Listener client → Server Listen <uuid> <seconds> Registered <uuid> <ip> <port> <seconds> Subscribe to a UUID for up to <seconds> seconds. The subscription is removed when that time expires. <ip> and <port> are the UDP source address observed by the server.
Notifier client → Server Notify <uuid> Notified <uuid> <n> Notify all currently subscribed Listener clients. <n> is the number of notification packets sent.
Server → Listener client Ready <uuid> — Notification sent to every Listener subscribed to the UUID, once per Notify.
Any client → Server Invalid command Error: <reason> The command could not be parsed or validated.

Multiple Listener clients can subscribe to the same UUID — a Notify sends Ready to all of them. Ready Bell runs over UDP and provides no delivery guarantees: commands, responses, and notifications may be lost, duplicated, or reordered. A Notified response only confirms the server attempted to send the notification, not that it arrived — keep your regular re-check schedule running as the fallback, and treat Ready purely as a hint to check sooner.

Code examples

Every example below talks to the live service at ready-bell.com:3137 — nothing to run or host yourself.

  • Run node listener.js in one terminal
  • Run node notifier.js in a second terminal
listener.js View raw
import dgram from "dgram";

const socket = dgram.createSocket("udp4");
const uuid = "3fa85f64-5717-4562-b3fc-2c963f66afa6";

socket.on("message", msg => console.log(msg.toString().trim()));
socket.send(`Listen ${uuid} 30`, 3137, "ready-bell.com");
notifier.js View raw
import dgram from "dgram";

const socket = dgram.createSocket("udp4");
const uuid = "3fa85f64-5717-4562-b3fc-2c963f66afa6";

socket.once("message", msg => (console.log(msg.toString().trim()), socket.close()));
socket.send(`Notify ${uuid}`, 3137, "ready-bell.com");

Questions, feedback or ideas about Ready Bell?

ready-bell@proton.me