@steelbreeze/broker
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0-beta.14 • Public • Published

    broker

    Lightweight publish and subscribe using Server-Sent Events for node and express

    If you like broker, please star it...

    Install

    npm i @steelbreeze/broker

    Usage

    Server

    To create a message broker server within an express application:

    const express = require('express');
    const broker = require('@steelbreeze/broker');
    
    // create the express application
    var app = express();
    
    // create a message broker that provides the last message on subscription
    var events = broker.server({lastMessage: true});
    
    // bind the message broker to the /events base URL
    app.use('/events', events);
    
    // start the express application
    app.listen(1024, 'localhost');

    You can create multiple message broker servers and bind them to different base URLs in the same express application.

    Subscriber (node)

    To create a subscription:

    const broker = require('@steelbreeze/broker');
    
    // create a client to the message broker
    var client = broker.client({host:'localhost', port: 1024, path: '/events'});
    
    // subscribe to the devices topic on the /events broker
    client.subscribe('devices', (message) => {
    	console.log(`All devices: (${message.id}) ${message.data}`);
    });

    A single client can subscribe to multiple topics.

    Publisher (node)

    To create a subscription:

    const broker = require('@steelbreeze/broker');
    
    // create a client to the message broker
    var client = broker.client({host:'localhost', port: 1024, path: '/events'});
    
    // publish a message on the devices topic of the /events broker every second
    var timer = setInterval( () => {
    	client.publish('devices', `Hello at ${new Date()}`, onError);
    }, 1000);
    
    function onError() {
    	clearInterval(timer);
    }

    Web clients

    In addition to using the provided client, a browser's EventSource may be used to subscribe and an HTTP POST can be used to publish.

    Note: for some browsers this may require an EventSource polyfill.

    License

    MIT License

    Copyright (c) 2018 David Mesquita-Morris

    Install

    npm i @steelbreeze/broker

    DownloadsWeekly Downloads

    29

    Version

    1.0.0-beta.14

    License

    MIT

    Unpacked Size

    26 kB

    Total Files

    17

    Last publish

    Collaborators

    • mesmo