https://github.com/atlantis-software/telepathymq
ipc for node
https://github.com/atlantis-software/telepathymq
Last synced: about 1 year ago
JSON representation
ipc for node
- Host: GitHub
- URL: https://github.com/atlantis-software/telepathymq
- Owner: Atlantis-Software
- Created: 2017-10-20T07:29:31.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2021-10-07T13:28:05.000Z (over 4 years ago)
- Last Synced: 2025-02-01T04:25:25.614Z (about 1 year ago)
- Language: JavaScript
- Size: 30.3 KB
- Stars: 0
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# telepathymq
a nodejs module for inter-process communication that let you share javascript object and events over network that support tcp and secure tls sockets.
[](https://www.npmjs.com/telepathymq)
[](https://travis-ci.org/Atlantis-Software/telepathymq)
[](https://coveralls.io/github/Atlantis-Software/telepathymq?branch=master)
[](https://david-dm.org/Atlantis-Software/telepathymq)
## Installation
telepathymq is available over npm
```
npm install telepathymq
```
## Sample
this code initialise connection between client and server side and send an "hello world" message
```
var Telepathy = require('telepathymq');
// initialise the server side
// the constructor take a string argument for the instance identity
// used to send data from other node.
// it must be uniq on connected nodes.
var server = new Telepathy('server');
server.listen(8060, function() {
console.log('server is listening on port 8060');
});
server.on('register', function(identity) {
console.log(identity + ' has registered on server');
});
server.on('message', function(msg) {
console.log('message: ' + msg);
});
// initialise the client side
var client = new Telepathy('client');
client.register('server', 'tcp://localhost:8060');
client.on('register', function(identity) {
console.log(identity + ' has registered on client');
// emit an event called 'message' on 'server' with a string 'hello world' as data
client.emit('server', 'message', 'hello world');
});
```
## Methods
### server.listen()
Start a server listening for connections.
Possible signatures:
* listen(port, [ip,] callback)
* listen(url, options, callback)
### server.listen(port, [ip,] callback)
port: integer tcp port number
ip: string ip address (optional, default: '0.0.0.0')
callback: function
### server.listen(connectString, [options,] callback)
connectString: string {tcp | tls}://{ip | hostname}:{port}
options: object [see node tls.createServer options](https://nodejs.org/api/tls.html) only use in tls protocol
callback: function
### client.register(identity, connectString, [options,] callback)
immediately initiates connection.
When the connection is established, a `'register'` event will be emitted on the client.
identity: string identity of server node
connectString: string {tcp | tls}://{ip | hostname}:{port}
options: object [see node tls.connect options](https://nodejs.org/api/tls.html) only use in tls protocol
callback: function
### node.emit(identity, eventName, data)
emit an event on identity node.
identity: string identity of the other side node.
eventName: string the name of the event being emited
data: string,object data being sent over event
### node.on(eventName, listener)
Adds the `listener` function to the end of the listeners array for the event named `eventName`.
eventName: string the name of the event.
listener: function
### node.defer(identity, eventName[, data])
return an [asynk](https://www.npmjs.com/package/asynk) promise and send an asynk deferred.
identity: string identity of the other side node.
eventName: string the name of the event being emited
data: string,object data being sent over event
```
server.on('myDefer', function(defer, data) {
if (data.val === 1) {
defer.notify('some data');
}
});
var promise = client.defer('server', 'myDefer', {val: 1});
promise.progress(function(data) {
console.log(data);
});
```