Create your own PubSub Client & Server use WebSocket

Author profile picture


How it works ?

const pubSub = new PubSubClient('ws://localhost:3001', {
connect: true,
reconnect: true,

const topicName = 'abc'

pubSub.subscribe(topicName, (message) => {
console.log(`Got message from topic ${topicName}`, message)

//publish a message to topic
{title: 'Hello subscribers in the topic abc', body: 'How are you ?'})

// Broadcast send message to subscribers but not me
pubSub.broadcast(topicName, {body: 'this is broadcast message'})
// Unsubscribe


  • May limit publisher and time to send message if look like spammer
  • Maybe server need wait a time (short time) if detect mutiple publish messages same to one client and send a batch of messages instead of send a single message.
  • Add Crypto client & server key sharing to decrypt between client & server when connected. More security for WebSocket communication. The message from client to server and server to client is encrypted.

Part 1: WebSocket Client and WebSocket Server

Part 2: Subscription : Publish, Subscribe, Broadcast

Part 3: Implement auto reconnect

Part 4: Handle Unsubscribe



Video Playlist here



The Noonification banner

Subscribe to get your daily round-up of top tech stories!