JSPM

multicast-eventer

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q26314F
  • License MIT

An EventEmitter for publishing & subscribing to multicast events across a network

Package Exports

  • multicast-eventer

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (multicast-eventer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

multicast-eventer

An EventEmitter for publishing & subscribing to multicast events across a network.

Installation

$ npm install multicast-eventer

Setup

If you're setting up your device for the first time and running Linux, there is a handy setupRoutes function included in the package to set up the multicast routes.

setup.js

const { setupRoutes } = require('multicast-eventer');

// add multicast route to usual network interfaces
setupRoutes();

Or if you know what network interface you'll be using, i.e eth0 for ethernet or wlan0 for WiFI, you can pass that as an argument to setupRoutes.

setup.js

const { setupRoutes } = require('multicast-eventer');

// add multicast route to usual network interfaces
setupRoutes('wlan0');

Usage

You can use this package just like any other EventEmitter, expect the events will span devices instead of the local program:

device-one.js

const { MulticastEmitter } = require('multicast-eventer');
const emitter = new MulticastEmitter();

emitter.on('test', data => console.log(`Message from ${data.device}: `, data));
emitter.on('error', console.error);

device-two.js

const { MulticastEmitter } = require('multicast-eventer');
const emitter = new MulticastEmitter();

// the 2nd argument could be an object with anything you want
emitter.emit('test', { message: 'This could be anything' })

Options

  • address (String): the multicast IPv4 address to listen on (valid from 224.0.0.1 to 239.255.255.254). Default is 239.10.10.100.
  • broadcast (Boolean): When set to true, UDP packets may be sent to a local interface's broadcast address. Default is true.
  • loopback (Boolean): When set to true, multicast packets will also be received on the local interface. Default is false.
  • name (String): Name of the device to emit with events. Default is the hostname for the device.
  • port (Number): Destination port. Default is 33333.
  • ttl (Number): Specifies the number of IP hops that a packet is allowed to travel through, specifically for multicast traffic. Default is 128.

Test

For now, the test is basically ensuring the TypeScript source compiles successfully.

$ npm test