Skip to content

CorySanin/udp-broadcast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

udp-broadcast

Travis build npm downloads npm bundle size David License GitHub package.json version

A simple Node module for broadcasting UDP messages to a list of subscribers!

I couldn't find anything that did what I wanted so I made my own.

Usage

Server

const UdpBroadcast = require('udp-broadcast').server;

let udpbroadcast = new UdpBroadcast({
    port: 2278,
    host: '0.0.0.0',
    timeout: 15000
});

udpbroadcast.addEventListener('message', (message) => {console.log(message)});

udpbroadcast.send('Hello, everyone.');

udpbroadcast.send({timestamp: new Date().getTime(), message: 'Greetings.'});

Client

const UdpClient = require('udp-broadcast').client;

let udpclient = UdpClient({
    port: 3616,
    host: '127.0.0.1',
    heartbeat: 7500‬
});

udpclient.on('message', (message) => {console.log(message)});

udpclient.open((err, id) => {
    if(err){
        console.log(err);
    }
    else{
        udpclient.send('Hello to you, too.');
    }
});

Custom Client

In order to implement a client for udp-broadcast, it must communicate using the following, easy to implement protocol:

Client sends { "id": -1 }

Server responds with { "id": x } where x is the id that the client must use for all messages until it closes its connection.

Client sends { "id": x } every y seconds, where y is strictly less than the timeout being used by the server.

When a message must be sent back to the server, the format for the message is { "id": x, "message": "this is the body of the message." }.

Messages sent from the broadcast server don't get formatted so it's up to you to find out whether to expect plain text or JSON.