Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tj/punt

Elegant UDP messaging for nodejs
https://github.com/tj/punt

Last synced: 1 day ago
JSON representation

Elegant UDP messaging for nodejs

Awesome Lists containing this project

README

        

# Punt

A small layer on top of node's core __UDP__ module to make fast volatile messaging even simpler.
Punt uses the tiny [AMP](https://github.com/visionmedia/node-amp) prototol to serialize buffer, string,
and json arguments.

## Installation

```
$ npm install punt
```

## Example

A small in-proc example of a server with three clients:

```js
var punt = require('punt');
var server = punt.bind('0.0.0.0:5000');
var a = punt.connect('0.0.0.0:5000');
var b = punt.connect('0.0.0.0:5000');
var c = punt.connect('0.0.0.0:5000');

server.on('message', function(msg){
console.log(msg);
});

setInterval(function(){
a.send({ hello: 'world' });
}, 150);

setInterval(function(){
b.send('hello world');
}, 150);

setInterval(function(){
c.send(Buffer.from('hello'));
}, 150);
```

yielding:

```

hello world
{ hello: 'world' }

hello world
{ hello: 'world' }
...
```
## API

### Server(addr)

Bind to the given `addr`.

### Client(addr)

Connect to the given `addr`.

### Client#send(...)

Send one or more arguments a single atomic message. The following
types are supported through AMP:

- strings
- buffers
- objects (serialized as JSON)

## License

MIT