{"library":"message-bus-client","title":"MessageBus JavaScript Client","description":"The `message-bus-client` package is the official JavaScript client library for connecting to the Ruby `message_bus` server. It provides robust functionalities for subscribing to channels, receiving real-time messages via polling, long-polling, or long-polling with streaming, and managing subscriptions and message backlogs. Designed to work seamlessly with the `message_bus` Ruby gem, which acts as a Rack middleware, it enables scalable concurrent connections. The current stable version is 4.5.2, reflecting active maintenance, as it is a critical component of Discourse, where it's used in production at scale. Its primary role is to establish a reliable client-server communication channel for web applications.","language":"javascript","status":"active","last_verified":"Tue Apr 21","install":{"commands":["npm install message-bus-client"],"cli":null},"imports":["import { MessageBus } from 'message-bus-client';","const { MessageBus } = require('message-bus-client');","import type { MessageBusOptions } from 'message-bus-client';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { MessageBus } from 'message-bus-client';\n\n// Configure the MessageBus client with your server's base URL if different from current origin\nconst bus = new MessageBus({\n  baseUrl: 'http://localhost:9292/message-bus' // Replace with your MessageBus server URL\n});\n\nbus.start(); // Start polling for messages immediately\n\nbus.subscribe('/global-channel', (data, messageId) => {\n  console.log(`Received message on /global-channel (ID: ${messageId}):`, data);\n});\n\nbus.subscribe('/user-channel-123', (data) => {\n  console.log('Received targeted message:', data);\n});\n\n// To stop listening and disconnect\n// setTimeout(() => {\n//   bus.unsubscribe('/global-channel');\n//   bus.stop();\n//   console.log('MessageBus stopped and unsubscribed.');\n// }, 60000);\n","lang":"javascript","description":"Demonstrates how to initialize the MessageBus client, subscribe to multiple channels, and receive real-time messages. It includes optional server URL configuration.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}