Package Exports
- @rainder/dgram-data
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 (@rainder/dgram-data) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Datagram Data
Data handler for UDP protocol
Example
'use strict';
const dgram = require('dgram');
const dgramData = require('@rainder/dgram-data');
{ //server
const server = dgram.createSocket('udp4');
const collector = new class extends dgramData.Collector {
onMessage(message, rinfo) {
const data = JSON.parse(message.getPayload())
console.log(data);
/** data =
* { test: 123 }
*/
}
};
server.on('message', (buffer, rinfo) => collector.processBuffer(buffer, rinfo));
server.bind(12346, '127.0.0.1');
}
{ //client
const client = dgram.createSocket('udp4');
const body = {
test: 123
};
dgramData.Message.createFromObject(body)
.send(client, 12346, '127.0.0.1')
.then(result => console.log(result)); //{ bytes_sent: 26 }
}
API
Collector
processBuffer(buffer: Buffer, rinfo: *): void
processPacket(packet: Packet, rinfo: *): void
onMessage(message: Message, rinfo: *): void
Callback function. Get called whenever all chunks of Message
are collected.
Message
static createFromBuffer(buffer: Buffer): Message
static createFromObject(object: *): Message
getPacket(index: Number): Packet
send(client: Socket, [port: Number], [host: String]): Promise
Sends a message to the servers and returns a Promise
onFin(data: *): void
called whenever all chunks of Message
ar collected.
onTimeout(): void
called on timeout