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 is239.10.10.100
. - broadcast (
Boolean
): When set to true, UDP packets may be sent to a local interface's broadcast address. Default istrue
. - loopback (
Boolean
): When set to true, multicast packets will also be received on the local interface. Default isfalse
. - name (
String
): Name of the device to emit with events. Default is the hostname for the device. - port (
Number
): Destination port. Default is33333
. - ttl (
Number
): Specifies the number of IP hops that a packet is allowed to travel through, specifically for multicast traffic. Default is128
.
Test
For now, the test is basically ensuring the TypeScript source compiles successfully.
$ npm test