Pub Sub
API
POST /api/topics
Returns `topicId` and `secret`. secret is for topic owner.
Publisher
const apiBase = "https://pubsub.kbn.one/api/topics";
const pair = await fetch(apiBase, { method: "POST" }).then(x => x.json());
const subscriberUrl = `${apiBase}/${pair.topicId}`;
console.log("subscriberUrl", subscriberUrl);
const ws = new WebSocket(`${subscriberUrl}?secret=${pair.secret}`);
ws.send(JSON.stringify({ anything: "to publish" }));Subscriber
const ws = new WebSocket(subscriberUrl);
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
// data is the published data.
console.log(data.anything);
}
// Subscriber can publish under 'pub'
// use this for interaction.
ws.send(JSON.stringify({ pub: "😀" }));