DEPRECATED
node-udp-messaging which has defined more managable goals.
This library is deprecated in favor ofCurrent state of this library does not allow stable transfers of big ammounts of data.
node-reliable-udp
A reliable communication protocol over UDP with holepunching for Node.js.
Goal
Implementing NAT holepunching with TCP is very tricky and does not work on every configuration. This project aims to deliver a tool to establish a reliable communication stream (TCP-like) over UDP for use in P2P systems. Communication stability has the priority over speed in this project.
Installation
Node >=8.9.0
is required.
npm install --save reliable-udp
To perform tests use:
cd node_modules/reliable-udpnpm t
Usage
Beware this project is still in development. There may be serious bugs or performance issues over time.
async { // Create a reliable UDP socket const ReliableUDPSocket = ; const server = port: 12345 ; await server; // Connect to another peer const peer = await server; // Send some raw data as a stream const data = Buffer; peer; // Receive raw data as a stream peer; // Execute holepunching (get an address and port that another peer over the internet can use to reach this peer) const hole = await server; // Close a particular session peer; // Close all current sessions and unbind server;};
Contributing
The source is documented with JSDoc. To generate the documentation use:
npm run docs
Extra debugging information is printed using the debug
module:
DEBUG=reliable-udp:* npm t
The documentation will be put in the new docs
directory.
To introduce an improvement please fork this project, commit changes in a new branch to your fork and add a pull request on this repository pointing at your fork. Please follow these style recommendations when working on the code:
- Use tabs (yup).
- Use
async
/await
and/orPromise
where possible. - Features must be properly tested.
- New methods must be properly documented with
jscode
style comments.