New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

node-mate

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-mate

The library for the MATE protocol

  • 1.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

node-mate

npm version Join the chat at https://gitter.im/Covertness/node-mate

node-mate is a library for the MATE protocol, written in JavaScript for node.js.

Features

Distributed

QoS

Easy-to-use

Installation

npm install node-mate

Quick start

Starting the first mate node.

var mate = require('node-mate');

var node = mate.createNode();

node.on('listening', function() {
	console.log('mate node ' + node.localNodeContact.id.toString() + ' started');
});

node.on('message', function(from, message) {
    console.log('receive ' + from.id.toString() + ' message: ' + message);
});

Starting another to connect the first node and send a message.

var mate = require('node-mate');

var node = mate.createNode({
    networkPort: 2016,
    rootNode: {
        ip: '127.0.0.1',
        port: 2015
    }
});

node.on('listening', function() {
    console.log('mate node ' + node.localNodeContact.id.toString() + ' started');
});

node.on('root_connected', function(root) {
    console.log('root node connected');

    node.send(root.id.toString(), 'I\'m here!', function(success) {
        if (success === true) {
            console.log('send message success');
        } else {
            console.log('send message failed');
        }
    });
});

You can run these code online!

API

  • mate.createNode()
  • mate.Node#send()
  • mate.Node#end()

mate.createNode([options])

Create a mate node by the given options and returns the node.

  • options is the mate node options, including:
    • networkPort: Port of the mate node listening, default 2015
    • rootNode: Address of the first connecting node when the node started, it's a object like: {ip: '127.0.0.1', port: 2015}
    • nodeId: the node id, default is a random string generated by uuid
    • nodeInfoFile: the file that stored the node id, for reuse

mate.Node#send(nodeId, message, [callback])

Send a message.

  • nodeId: the node id to send to, String
  • message: the message to send to, String, Buffer or Object
  • callback: fired on sended

mate.Node#end()

Shut down the node.

Event

  • 'listening'
  • 'root_connected'
  • 'message'
  • 'root_disconnect'
  • 'net_error'
  • 'data_error'
  • 'net_close'

'listening'

function() {}

Emitted on successful listening on the node port

'root_connected'

function(rootNode) {}

Emitted when connected to the root node

  • rootNode: Information of the root node, including id, address and so on, Object

'message'

function(fromNode, message) {}

Emitted when receive a message

  • fromNode: Information of the node that send message, including id, address and so on, Object
  • message: message of recevied, String, Buffer or Object

'root_disconnect'

function(rootNode) {}

Emitted after lost the connection with the root node

  • rootNode: Information of the root node, including id, address and so on, Object

'net_error'

function(error) {}

Emitted when the node cannot listening.

'data_error'

function(error) {}

Emitted when a parsing error occurs.

'net_close'

Emitted when the node shut down.

Code contributions

By contributing code to the project in any form, including sending a pull request via Github, a code fragment or patch via email.

License

MIT

Keywords

FAQs

Package last updated on 22 Mar 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc