Skip to content

Cocycles/udp-io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

udp-io

easy request response pattern for udp sockets, using nodejs dgram module.

A nicer interface to the built-in dgram module.

Install

$ npm install --save udp-io

Usage

you need to have two node servers, which every server opens a udp socket, define in the bind method. the two servers can be both "client" and "server" in the request resonse pattern.

on your "server" you need to define an event, you do this with the method on, with the name of the event and a function. you do whatever you want and then use the callback to send the payload back to request.

on the "client" you can use the method send with an event name, payload, port and host. this method returns an es6 Promise with the result from the "server".

Example

server
//on the "server"

const udpIO = require('udp-io');
const udpSocket = require('dgram').createSocket('udp4');
const server = udpIO(udpSocket);

server.bind(33335);

server.on('MY_AWESOME_EVENT', (res, cb) => {
  console.log(res.question);
  cb({ answer: 'i\'m fine, thanx !' });
});
client
//on the "client"

const udpIO = require('udp-io');
const udpSocket = require('dgram').createSocket('udp4');
const server = udpIO(udpSocket);

server.bind(33334);
server.setMaxTimeout(4000);
server.send('MY_AWESOME_EVENT', { question: 'how are you ?' }, 33335).then((res) => {
  console.log(`answer: ${res.answer}`);
});

API

server.bind(port, host)

binds the server to port and host, the host is default to localhost

server.on(eventName, fn(req, cb))

register an event, eventName is a string and the function gets a request object and a callback, call the callback to send the message back.

server.send(eventName, payload, port, host)

send an event to a certain host, returns an es6 Promise. eventName is a string and host is default to localhost.

server.setMaxTimeout(milliseconds)

change the max timeout for a request, which after that the request expires.

License

MIT

About

request response pattern built on upd sockets

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published