Pub Sub

Presentation

Simple Chat

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: "😀" }));