Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
745b3dbee9
30 changed files with 456 additions and 186 deletions
35
README.md
35
README.md
|
@ -7,6 +7,7 @@ A great solution for **Neural Networking** in Node.JS
|
||||||
|
|
||||||
|
|
||||||
npm info : [See npm trends and stats for node-ipc](http://npm-stat.com/charts.html?package=node-ipc&author=&from=&to=)
|
npm info : [See npm trends and stats for node-ipc](http://npm-stat.com/charts.html?package=node-ipc&author=&from=&to=)
|
||||||
|
[![NPM](https://nodei.co/npm/node-ipc.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/node-ipc/)
|
||||||
![node-ipc npm version](https://img.shields.io/npm/v/node-ipc.svg) ![supported node version for node-ipc](https://img.shields.io/node/v/node-ipc.svg) ![total npm downloads for node-ipc](https://img.shields.io/npm/dt/node-ipc.svg) ![monthly npm downloads for node-ipc](https://img.shields.io/npm/dm/node-ipc.svg) ![npm licence for node-ipc](https://img.shields.io/npm/l/node-ipc.svg)
|
![node-ipc npm version](https://img.shields.io/npm/v/node-ipc.svg) ![supported node version for node-ipc](https://img.shields.io/node/v/node-ipc.svg) ![total npm downloads for node-ipc](https://img.shields.io/npm/dt/node-ipc.svg) ![monthly npm downloads for node-ipc](https://img.shields.io/npm/dm/node-ipc.svg) ![npm licence for node-ipc](https://img.shields.io/npm/l/node-ipc.svg)
|
||||||
|
|
||||||
[![RIAEvangelist](https://avatars3.githubusercontent.com/u/369041?v=3&s=100)](https://github.com/RIAEvangelist)
|
[![RIAEvangelist](https://avatars3.githubusercontent.com/u/369041?v=3&s=100)](https://github.com/RIAEvangelist)
|
||||||
|
@ -32,13 +33,14 @@ This work is licenced via the [DBAD Public Licence](http://www.dbad-license.org/
|
||||||
5. [serve](#serve)
|
5. [serve](#serve)
|
||||||
6. [serveNet](#servenet)
|
6. [serveNet](#servenet)
|
||||||
3. [IPC Stores and Default Variables](#ipc-stores-and-default-variables)
|
3. [IPC Stores and Default Variables](#ipc-stores-and-default-variables)
|
||||||
4. [Basic Examples](#basic-examples)
|
4. [IPC Events](#ipc-events)
|
||||||
|
5. [Basic Examples](#basic-examples)
|
||||||
1. [Server for Unix||Windows Sockets & TCP Sockets](#server-for-unix-sockets--tcp-sockets)
|
1. [Server for Unix||Windows Sockets & TCP Sockets](#server-for-unix-sockets--tcp-sockets)
|
||||||
2. [Client for Unix||Windows Sockets & TCP Sockets](#client-for-unix-sockets--tcp-sockets)
|
2. [Client for Unix||Windows Sockets & TCP Sockets](#client-for-unix-sockets--tcp-sockets)
|
||||||
4. [Server & Client for UDP Sockets](#server--client-for-udp-sockets)
|
4. [Server & Client for UDP Sockets](#server--client-for-udp-sockets)
|
||||||
5. [Raw Buffers or Binary Sockets](#raw-buffer-or-binary-sockets)
|
5. [Raw Buffers or Binary Sockets](#raw-buffer-or-binary-sockets)
|
||||||
5. [Working with TLS/SSL Socket Servers & Clients](https://github.com/RIAEvangelist/node-ipc/tree/master/example/TLSSocket)
|
6. [Working with TLS/SSL Socket Servers & Clients](https://github.com/RIAEvangelist/node-ipc/tree/master/example/TLSSocket)
|
||||||
6. [Advanced Examples](https://github.com/RIAEvangelist/node-ipc/tree/master/example)
|
7. [Advanced Examples](https://github.com/RIAEvangelist/node-ipc/tree/master/example)
|
||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
|
@ -73,6 +75,7 @@ Set these variables in the `ipc.config` scope to overwrite or set default values
|
||||||
networkPort : 8000,
|
networkPort : 8000,
|
||||||
encoding : 'utf8',
|
encoding : 'utf8',
|
||||||
rawBuffer : false,
|
rawBuffer : false,
|
||||||
|
sync : false,
|
||||||
silent : false,
|
silent : false,
|
||||||
maxConnections : 100,
|
maxConnections : 100,
|
||||||
retry : 500,
|
retry : 500,
|
||||||
|
@ -91,6 +94,7 @@ Set these variables in the `ipc.config` scope to overwrite or set default values
|
||||||
| networkPort| the default port on which TCP, TLS, or UDP sockets should connect |
|
| networkPort| the default port on which TCP, TLS, or UDP sockets should connect |
|
||||||
| encoding | the default encoding for data sent on sockets. Mostly used if rawBuffer is set to true. Valid values are : ` ascii` ` utf8 ` ` utf16le` ` ucs2` ` base64` ` hex ` .
|
| encoding | the default encoding for data sent on sockets. Mostly used if rawBuffer is set to true. Valid values are : ` ascii` ` utf8 ` ` utf16le` ` ucs2` ` base64` ` hex ` .
|
||||||
| rawBuffer| if true, data will be sent and received as a raw node ` Buffer ` __NOT__ an ` Object ` as JSON. This is great for Binary or hex IPC, and communicating with other processes in languages like C and C++ |
|
| rawBuffer| if true, data will be sent and received as a raw node ` Buffer ` __NOT__ an ` Object ` as JSON. This is great for Binary or hex IPC, and communicating with other processes in languages like C and C++ |
|
||||||
|
| sync | synchronous requests. Clients will not send new requests until the server answers. |
|
||||||
| silent | turn on/off logging default is false which means logging is on |
|
| silent | turn on/off logging default is false which means logging is on |
|
||||||
| maxConnections| this is the max number of connections allowed to a socket. It is currently only being set on Unix Sockets. Other Socket types are using the system defaults. |
|
| maxConnections| this is the max number of connections allowed to a socket. It is currently only being set on Unix Sockets. Other Socket types are using the system defaults. |
|
||||||
| retry | this is the time in milliseconds a client will wait before trying to reconnect to a server if the connection is lost. This does not effect UDP sockets since they do not have a client server relationship like Unix Sockets and TCP Sockets. |
|
| retry | this is the time in milliseconds a client will wait before trying to reconnect to a server if the connection is lost. This does not effect UDP sockets since they do not have a client server relationship like Unix Sockets and TCP Sockets. |
|
||||||
|
@ -436,6 +440,20 @@ or specifying everything UDP
|
||||||
| ipc.of | This is where socket connection refrences will be stored when connecting to them as a client via the `ipc.connectTo` or `iupc.connectToNet`. They will be stored based on the ID used to create them, eg : ipc.of.mySocket|
|
| ipc.of | This is where socket connection refrences will be stored when connecting to them as a client via the `ipc.connectTo` or `iupc.connectToNet`. They will be stored based on the ID used to create them, eg : ipc.of.mySocket|
|
||||||
| ipc.server| This is a refrence to the server created by `ipc.serve` or `ipc.serveNet`|
|
| ipc.server| This is a refrence to the server created by `ipc.serve` or `ipc.serveNet`|
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### IPC Events
|
||||||
|
|
||||||
|
|event name|params|definition|
|
||||||
|
|----------|------|----------|
|
||||||
|
|error|err obj|triggered when an error has occured|
|
||||||
|
|connect||triggered when socket connected|
|
||||||
|
|disconnect||triggered when socket disconnected|
|
||||||
|
|destroy||triggered when socket has been totally destroyed, no further auto retries will happen and all references are gone.|
|
||||||
|
|data|buffer|triggered when ipc.config.rawBuffer is true and a message is received.|
|
||||||
|
|***your event type***|***your event data***|triggered when a JSON message is received. The event name will be the type string from your message and the param will be the data object from your message eg : ` { type:'myEvent',data:{a:1}} ` |
|
||||||
|
||||
|
||||||
|
|
||||||
----
|
----
|
||||||
### Basic Examples
|
### Basic Examples
|
||||||
You can find [Advanced Examples](https://github.com/RIAEvangelist/node-ipc/tree/master/example) in the examples folder. In the examples you will find more complex demos including multi client examples.
|
You can find [Advanced Examples](https://github.com/RIAEvangelist/node-ipc/tree/master/example) in the examples folder. In the examples you will find more complex demos including multi client examples.
|
||||||
|
@ -458,7 +476,8 @@ The server is the process keeping a socket for IPC open. Multiple sockets can co
|
||||||
ipc.log('got a message : '.debug, data);
|
ipc.log('got a message : '.debug, data);
|
||||||
ipc.server.emit(
|
ipc.server.emit(
|
||||||
socket,
|
socket,
|
||||||
'message',
|
'message', //this can be anything you want so long as
|
||||||
|
//your client knows.
|
||||||
data+' world!'
|
data+' world!'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -488,7 +507,7 @@ The client connects to the servers socket for Inter Process Communication. The s
|
||||||
function(){
|
function(){
|
||||||
ipc.log('## connected to world ##'.rainbow, ipc.config.delay);
|
ipc.log('## connected to world ##'.rainbow, ipc.config.delay);
|
||||||
ipc.of.world.emit(
|
ipc.of.world.emit(
|
||||||
'message',
|
'message', //any event or message type your server listens for
|
||||||
'hello'
|
'hello'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -500,7 +519,7 @@ The client connects to the servers socket for Inter Process Communication. The s
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ipc.of.world.on(
|
ipc.of.world.on(
|
||||||
'message',
|
'message', //any event or message type your server listens for
|
||||||
function(data){
|
function(data){
|
||||||
ipc.log('got a message from world : '.debug, data);
|
ipc.log('got a message from world : '.debug, data);
|
||||||
}
|
}
|
||||||
|
@ -549,8 +568,6 @@ This is the most basic example which will work for both local and remote UDP Soc
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -588,8 +605,6 @@ This is the most basic example which will work for both local and remote UDP Soc
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -45,7 +45,7 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen['app.message']='This event type listens for message strings as value of data key.';
|
|
||||||
ipc.server.define.broadcast['kill.connection']='This event is a command to kill connection to this server, the data object will contain the id of this server incase the client needs it';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
||||||
|
|
|
@ -33,6 +33,4 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
46
example/TCPSocket/basicSync/hello-client.js
Normal file
46
example/TCPSocket/basicSync/hello-client.js
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
|
/***************************************\
|
||||||
|
*
|
||||||
|
* You should start both hello and world
|
||||||
|
* then you will see them communicating.
|
||||||
|
*
|
||||||
|
* *************************************/
|
||||||
|
|
||||||
|
ipc.config.id = 'hello';
|
||||||
|
ipc.config.retry= 1500;
|
||||||
|
ipc.config.sync= true;
|
||||||
|
|
||||||
|
ipc.connectToNet(
|
||||||
|
'world',
|
||||||
|
function(){
|
||||||
|
ipc.of.world.on(
|
||||||
|
'connect',
|
||||||
|
function(){
|
||||||
|
ipc.log('## connected to world ##'.rainbow, ipc.config.delay);
|
||||||
|
|
||||||
|
//queue up a bunch of requests to be sent synchronously
|
||||||
|
for(var i=0; i<10; i++){
|
||||||
|
ipc.of.world.emit(
|
||||||
|
'message',
|
||||||
|
'hello'+i
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.of.world.on(
|
||||||
|
'disconnect',
|
||||||
|
function(){
|
||||||
|
ipc.log('disconnected from world'.notice);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.of.world.on(
|
||||||
|
'message',
|
||||||
|
function(data){
|
||||||
|
ipc.log('got a message from world : '.debug, data,'\n\n');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log(ipc)
|
45
example/TCPSocket/basicSync/world-server.js
Normal file
45
example/TCPSocket/basicSync/world-server.js
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
|
/***************************************\
|
||||||
|
*
|
||||||
|
* You should start both hello and world
|
||||||
|
* then you will see them communicating.
|
||||||
|
*
|
||||||
|
* *************************************/
|
||||||
|
|
||||||
|
ipc.config.id = 'world';
|
||||||
|
ipc.config.retry= 1500;
|
||||||
|
ipc.config.sync = true;
|
||||||
|
|
||||||
|
ipc.serveNet(
|
||||||
|
function(){
|
||||||
|
ipc.server.on(
|
||||||
|
'message',
|
||||||
|
function(data,socket){
|
||||||
|
ipc.log('got a message : '.debug, data);
|
||||||
|
//fake some synch procedural code
|
||||||
|
setTimeout(
|
||||||
|
function(){
|
||||||
|
ipc.server.emit(
|
||||||
|
socket,
|
||||||
|
'message',
|
||||||
|
data+' world!'
|
||||||
|
);
|
||||||
|
},
|
||||||
|
3000
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
ipc.server.on(
|
||||||
|
'socket.disconnected',
|
||||||
|
function(data,socket){
|
||||||
|
console.log(arguments)
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ipc.server.start();
|
|
@ -49,7 +49,7 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen['app.message']='This event type listens for message strings as value of data key.';
|
|
||||||
ipc.server.define.broadcast['kill.connection']='This event is a command to kill connection to this server, the data object will contain the id of this server incase the client needs it';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
||||||
|
|
|
@ -37,6 +37,6 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
||||||
|
|
|
@ -43,6 +43,6 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
||||||
|
|
|
@ -44,6 +44,6 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
||||||
|
|
|
@ -37,6 +37,6 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
||||||
|
|
47
example/TLSSocket/basicSync/hello-client.js
Normal file
47
example/TLSSocket/basicSync/hello-client.js
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
|
/***************************************\
|
||||||
|
*
|
||||||
|
* You should start both hello and world
|
||||||
|
* then you will see them communicating.
|
||||||
|
*
|
||||||
|
* *************************************/
|
||||||
|
|
||||||
|
ipc.config.id = 'hello';
|
||||||
|
ipc.config.retry= 1500;
|
||||||
|
ipc.config.sync= true;
|
||||||
|
ipc.config.tls={
|
||||||
|
rejectUnauthorized:false
|
||||||
|
};
|
||||||
|
|
||||||
|
ipc.connectToNet(
|
||||||
|
'world',
|
||||||
|
function(){
|
||||||
|
ipc.of.world.on(
|
||||||
|
'connect',
|
||||||
|
function(){
|
||||||
|
ipc.log('## connected to world ##'.rainbow, ipc.config.delay);
|
||||||
|
|
||||||
|
//queue up a bunch of requests to be sent synchronously
|
||||||
|
for(var i=0; i<10; i++){
|
||||||
|
ipc.of.world.emit(
|
||||||
|
'message',
|
||||||
|
'hello'+i
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.of.world.on(
|
||||||
|
'disconnect',
|
||||||
|
function(){
|
||||||
|
ipc.log('disconnected from world'.notice);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.of.world.on(
|
||||||
|
'message',
|
||||||
|
function(data){
|
||||||
|
ipc.log('got a message from world : '.debug, data);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
48
example/TLSSocket/basicSync/world-server.js
Normal file
48
example/TLSSocket/basicSync/world-server.js
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
|
/***************************************\
|
||||||
|
*
|
||||||
|
* You should start both hello and world
|
||||||
|
* then you will see them communicating.
|
||||||
|
*
|
||||||
|
* *************************************/
|
||||||
|
|
||||||
|
ipc.config.id = 'world';
|
||||||
|
ipc.config.retry= 1500;
|
||||||
|
ipc.config.sync= true;
|
||||||
|
ipc.config.tls={
|
||||||
|
public: '../../../local-node-ipc-certs/server.pub',
|
||||||
|
private: '../../../local-node-ipc-certs/private/server.key'
|
||||||
|
}
|
||||||
|
|
||||||
|
ipc.serveNet(
|
||||||
|
function(){
|
||||||
|
ipc.server.on(
|
||||||
|
'message',
|
||||||
|
function(data,socket){
|
||||||
|
ipc.log('got a message : '.debug, data);
|
||||||
|
setTimeout(
|
||||||
|
function(){
|
||||||
|
ipc.server.emit(
|
||||||
|
socket,
|
||||||
|
'message',
|
||||||
|
data+' world!'
|
||||||
|
);
|
||||||
|
},
|
||||||
|
3000
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
ipc.server.on(
|
||||||
|
'socket.disconnected',
|
||||||
|
function(data,socket){
|
||||||
|
console.log(arguments)
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ipc.server.start();
|
|
@ -43,6 +43,6 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
|
@ -43,6 +43,6 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
|
@ -58,6 +58,6 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
|
@ -47,6 +47,6 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
|
@ -43,6 +43,6 @@ ipc.serveNet(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
|
@ -45,7 +45,7 @@ ipc.serve(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen['app.message']='This event type listens for message strings as value of data key.';
|
|
||||||
ipc.server.define.broadcast['kill.connection']='This event is a command to kill connection to this server, the data object will contain the id of this server incase the client needs it';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
||||||
|
|
|
@ -29,6 +29,6 @@ ipc.serve(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ipc.server.define.listen['app.message']='This event type listens for message strings as value of data key.';
|
|
||||||
|
|
||||||
ipc.server.start();
|
ipc.server.start();
|
||||||
|
|
49
example/unixWindowsSocket/basicSync/hello-client.js
Normal file
49
example/unixWindowsSocket/basicSync/hello-client.js
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
|
/***************************************\
|
||||||
|
*
|
||||||
|
* You should start both hello and world
|
||||||
|
* then you will see them communicating.
|
||||||
|
*
|
||||||
|
* *************************************/
|
||||||
|
|
||||||
|
ipc.config.id = 'hello';
|
||||||
|
ipc.config.retry = 1000;
|
||||||
|
ipc.config.sync= true;
|
||||||
|
|
||||||
|
ipc.connectTo(
|
||||||
|
'world',
|
||||||
|
function(){
|
||||||
|
ipc.of.world.on(
|
||||||
|
'connect',
|
||||||
|
function(){
|
||||||
|
ipc.log('## connected to world ##'.rainbow, ipc.config.delay);
|
||||||
|
|
||||||
|
//queue up a bunch of requests to be sent synchronously
|
||||||
|
for(var i=0; i<10; i++){
|
||||||
|
ipc.of.world.emit(
|
||||||
|
'app.message',
|
||||||
|
{
|
||||||
|
id : ipc.config.id,
|
||||||
|
message : 'hello'+i
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.of.world.on(
|
||||||
|
'disconnect',
|
||||||
|
function(){
|
||||||
|
ipc.log('disconnected from world'.notice);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.of.world.on(
|
||||||
|
'app.message',
|
||||||
|
function(data){
|
||||||
|
ipc.log('got a message from world : '.debug, data);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log(ipc.of.world.destroy);
|
||||||
|
}
|
||||||
|
);
|
41
example/unixWindowsSocket/basicSync/world-server.js
Normal file
41
example/unixWindowsSocket/basicSync/world-server.js
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
|
/***************************************\
|
||||||
|
*
|
||||||
|
* You should start both hello and world
|
||||||
|
* then you will see them communicating.
|
||||||
|
*
|
||||||
|
* *************************************/
|
||||||
|
|
||||||
|
ipc.config.id = 'world';
|
||||||
|
ipc.config.retry= 1500;
|
||||||
|
ipc.config.sync= true;
|
||||||
|
|
||||||
|
ipc.serve(
|
||||||
|
function(){
|
||||||
|
ipc.server.on(
|
||||||
|
'app.message',
|
||||||
|
function(data,socket){
|
||||||
|
//ipc.log('got a message from'.debug, (data.id).variable, (data.message).data);
|
||||||
|
|
||||||
|
setTimeout(
|
||||||
|
function(){
|
||||||
|
ipc.server.emit(
|
||||||
|
socket,
|
||||||
|
'app.message',
|
||||||
|
{
|
||||||
|
id : ipc.config.id,
|
||||||
|
message : data.message+' world!'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
2000
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ipc.server.start();
|
|
@ -3,11 +3,13 @@ var net = require('net'),
|
||||||
eventParser = require('../lib/eventParser.js'),
|
eventParser = require('../lib/eventParser.js'),
|
||||||
pubsub = require('event-pubsub'),
|
pubsub = require('event-pubsub'),
|
||||||
Message = require('js-message'),
|
Message = require('js-message'),
|
||||||
fs = require('fs');
|
fs = require('fs'),
|
||||||
|
Queue = require('js-queue');
|
||||||
|
|
||||||
function init(config,log){
|
function init(config,log){
|
||||||
var client={
|
var client={
|
||||||
config : config,
|
config : config,
|
||||||
|
queue : new Queue,
|
||||||
socket : false,
|
socket : false,
|
||||||
connect : connect,
|
connect : connect,
|
||||||
emit : emit,
|
emit : emit,
|
||||||
|
@ -32,9 +34,21 @@ function emit(type,data){
|
||||||
message=eventParser.format(message);
|
message=eventParser.format(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.socket.write(message);
|
if(!this.config.sync){
|
||||||
|
this.socket.write(message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.queue.add(
|
||||||
|
syncEmit.bind(this,message)
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function syncEmit(message){
|
||||||
|
this.log('dispatching event to '.debug, this.id.variable, this.path.variable,' : ', message.data);
|
||||||
|
this.socket.write(message);
|
||||||
|
}
|
||||||
|
|
||||||
function connect(){
|
function connect(){
|
||||||
//init client object for scope persistance especially inside of socket events.
|
//init client object for scope persistance especially inside of socket events.
|
||||||
var client=this;
|
var client=this;
|
||||||
|
@ -176,6 +190,11 @@ function connect(){
|
||||||
'data',
|
'data',
|
||||||
new Buffer(data,this.encoding)
|
new Buffer(data,this.encoding)
|
||||||
);
|
);
|
||||||
|
if(!client.config.sync){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
client.queue.next();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,6 +222,12 @@ function connect(){
|
||||||
message.data
|
message.data
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!client.config.sync){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
client.queue.next();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,16 +72,6 @@ function init(path,config,log,port){
|
||||||
sockets : [],
|
sockets : [],
|
||||||
emit : emit,
|
emit : emit,
|
||||||
broadcast : broadcast,
|
broadcast : broadcast,
|
||||||
define : {
|
|
||||||
listen : {
|
|
||||||
'get.events.broadcasting' : 'does not require any special paramaters',
|
|
||||||
'get.events.listening' : 'does not require any special paramaters'
|
|
||||||
},
|
|
||||||
broadcast : {
|
|
||||||
'events.broadcasting' : 'data.events is a JSON object of event definitions by type '+config.id+' will broadcast on '+path,
|
|
||||||
'events.listening' : 'data.events is a JSON object of event definitions by type '+config.id+' is listening for on '+path
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onStart : function(socket){
|
onStart : function(socket){
|
||||||
this.trigger(
|
this.trigger(
|
||||||
'start',
|
'start',
|
||||||
|
@ -266,16 +256,6 @@ function init(path,config,log,port){
|
||||||
if(server.config.rawBuffer){
|
if(server.config.rawBuffer){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
server.trigger(
|
|
||||||
'get.events.broadcasting',
|
|
||||||
socket
|
|
||||||
);
|
|
||||||
|
|
||||||
server.trigger(
|
|
||||||
'get.events.listening',
|
|
||||||
socket
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function started(socket){
|
function started(socket){
|
||||||
|
@ -330,34 +310,6 @@ function init(path,config,log,port){
|
||||||
|
|
||||||
new pubsub(server);
|
new pubsub(server);
|
||||||
|
|
||||||
server.on(
|
|
||||||
'get.events.broadcasting',
|
|
||||||
function(socket){
|
|
||||||
server.emit(
|
|
||||||
socket,
|
|
||||||
'events.broadcasting',
|
|
||||||
{
|
|
||||||
id : server.config.id,
|
|
||||||
events : server.define.broadcast
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
server.on(
|
|
||||||
'get.events.listening',
|
|
||||||
function(socket){
|
|
||||||
server.emit(
|
|
||||||
socket,
|
|
||||||
'events.listening',
|
|
||||||
{
|
|
||||||
id : server.config.id,
|
|
||||||
events : server.define.listen,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
server.on(
|
server.on(
|
||||||
'close',
|
'close',
|
||||||
function(){
|
function(){
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIID1jCCAr4CCQCWhOpk8haFZDANBgkqhkiG9w0BAQsFADCBrDELMAkGA1UEBhMC
|
MIID3TCCAsWgAwIBAgIJAOmDsVuaIt0SMA0GCSqGSIb3DQEBCwUAMIGEMQswCQYD
|
||||||
VVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1UaG91c2FuZCBPYWtzMRMwEQYDVQQK
|
VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTELMAkGA1UEBwwCTEExEDAOBgNV
|
||||||
DApkaWdpbm93Lml0MSAwHgYDVQQLDBdPcGVuIHNvdXJjZSBkZXZlbG9wbWVudDEe
|
BAoMB2RpZ2lub3cxDDAKBgNVBAsMA3JuZDEQMA4GA1UEAwwHZGlnaW5vdzEhMB8G
|
||||||
MBwGA1UEAwwVQnJhbmRvbiBOb3pha2kgTWlsbGVyMSEwHwYJKoZIhvcNAQkBFhJi
|
CSqGSIb3DQEJARYSYnJhbmRvbkBkaWdpbm93Lml0MB4XDTE1MTIyMjE5NDcxNVoX
|
||||||
cmFuZG9uQGRpZ2lub3cuaXQwHhcNMTUwOTI3MjAwNjQ1WhcNMTUxMDI3MjAwNjQ1
|
DTE2MTIyMTE5NDcxNVowgYQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9y
|
||||||
WjCBrDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1UaG91c2Fu
|
bmlhMQswCQYDVQQHDAJMQTEQMA4GA1UECgwHZGlnaW5vdzEMMAoGA1UECwwDcm5k
|
||||||
ZCBPYWtzMRMwEQYDVQQKDApkaWdpbm93Lml0MSAwHgYDVQQLDBdPcGVuIHNvdXJj
|
MRAwDgYDVQQDDAdkaWdpbm93MSEwHwYJKoZIhvcNAQkBFhJicmFuZG9uQGRpZ2lu
|
||||||
ZSBkZXZlbG9wbWVudDEeMBwGA1UEAwwVQnJhbmRvbiBOb3pha2kgTWlsbGVyMSEw
|
b3cuaXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+bDjJMB3kR03G
|
||||||
HwYJKoZIhvcNAQkBFhJicmFuZG9uQGRpZ2lub3cuaXQwggEiMA0GCSqGSIb3DQEB
|
SycoTH6TLxeASpMlUC9yuAXWNo+sLRA2v3gR8Qei6ITKpaV/iQPOSwgD0dy4aFU9
|
||||||
AQUAA4IBDwAwggEKAoIBAQCs+3muN6ClcxTPDHdtoLFE7XzWcwZ5XoxFORPc0kr5
|
n2CyOOAu+LWnBP57a9/I4c5Y5/3o0OV9bTYXHp33aTXMR+F9WZMlTSPoA0bZ40x8
|
||||||
Z4Qhay1DEASYvkH0TddIT1EiFn6uPrgoDnT/X9uShBb4d8NSU1cj3s0MSACtIFtg
|
XmuEr7ErMfcULRWbl7uen3BW5EPgKOCAkkt8GbrEk9IFZ5jWC6bebmwfgRzdfTNp
|
||||||
L8EGdX4XYpZDTf/MRC0RW3FYb90tQ5yWIzBwO4qAuMj2wxQY9Rvh05LgLfuctt+1
|
xld4E52MzHVrkjaB9Mcl7l+LMN/DW+CxiGEjfPo4RcSDmQW06LPfjLhJUINFkYNV
|
||||||
SzuMjsZ+oZVLVyFcHBDUd53DRnfSfp06F3NDClliURbVpCBw5MnX8q+S7JQMBitJ
|
eIB3Hy5Vdc92vIXJuOJkZYYR5MUNl8IC5mmHQjThyp+eIPkVtI8h1VUAiYf02bWx
|
||||||
W+y9xGkNUN1mP7fq48TE7Us4TCaySqcKeUg64zGd7HqmtrEHpjxocNnAMdZpqVeG
|
uktp/K5fAgMBAAGjUDBOMB0GA1UdDgQWBBQ3bFlvZ1dgqCw9DudCikARMWx5xjAf
|
||||||
+nuuab6uQdR7WM1/qxY+RiNp5MIQG8hUMqmb8tlhTKo3AgMBAAEwDQYJKoZIhvcN
|
BgNVHSMEGDAWgBQ3bFlvZ1dgqCw9DudCikARMWx5xjAMBgNVHRMEBTADAQH/MA0G
|
||||||
AQELBQADggEBAGBKa9ZMil4FEoekNzVsoTO/EU53xHuinOpRwK40ET+mVpHRNxIN
|
CSqGSIb3DQEBCwUAA4IBAQAdXfdpsUMigvLwMUywvPN4s3T6jPer7C7/6klDZ5yd
|
||||||
h4CguI233wWxoJ3ktJD3rKGp7yc5IvLz2e7pRbl8Zv/UuHYYSkOPj3fZTT5USyU9
|
YZNOzqnSiiuBwyqfr7taxDiGluWfA1kmHuOIbRMztBaQMNGQFzyN89O+Gvmy92ke
|
||||||
ITrEriSXr2WOu/X/YcVQBH6AHDPN8S/09LlOK6xhw20j5z27U3d29MfhJo5uSb7a
|
9LycG7+U3uBfu4q+77/F9z1NB/J6iUhnGKaq/RgdijJGtRXVYniGz5rgOI6Qfu1J
|
||||||
ojTY/01lp2cJuPxdp30AY43otrzQ6N6G0/YbCQYPI14CM3cu3FMsZFMd3fPMfBsP
|
5BMWgC7BDVX7BnehIw5xPDy9OT68atW7UyCTcCiPpgB0zoW+ZeJGNc7xCp82KRXv
|
||||||
wkhQ8hAM/qpFvvEGxvP8wXohfXk3EWQO+zUvToRFNvdDuc2DgjKBQ/084CLdyXIL
|
0QYn91fYnrRa+kP5Nd+eqJ2wKEcSJu64RB8n8tE9DhdhUn2EvQxqyK0rCpA9CslI
|
||||||
vOmREmIbeZCC6HBC/fF79PTmkvZtXrZlauA=
|
TwGY5CUysOyxRQkDA3czWsI2nRkByiWzLNLaYooJOkb4
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
MIIEowIBAAKCAQEArPt5rjegpXMUzwx3baCxRO181nMGeV6MRTkT3NJK+WeEIWst
|
MIIEowIBAAKCAQEAvmw4yTAd5EdNxksnKEx+ky8XgEqTJVAvcrgF1jaPrC0QNr94
|
||||||
QxAEmL5B9E3XSE9RIhZ+rj64KA50/1/bkoQW+HfDUlNXI97NDEgArSBbYC/BBnV+
|
EfEHouiEyqWlf4kDzksIA9HcuGhVPZ9gsjjgLvi1pwT+e2vfyOHOWOf96NDlfW02
|
||||||
F2KWQ03/zEQtEVtxWG/dLUOcliMwcDuKgLjI9sMUGPUb4dOS4C37nLbftUs7jI7G
|
Fx6d92k1zEfhfVmTJU0j6ANG2eNMfF5rhK+xKzH3FC0Vm5e7np9wVuRD4CjggJJL
|
||||||
fqGVS1chXBwQ1Hedw0Z30n6dOhdzQwpZYlEW1aQgcOTJ1/KvkuyUDAYrSVvsvcRp
|
fBm6xJPSBWeY1gum3m5sH4Ec3X0zacZXeBOdjMx1a5I2gfTHJe5fizDfw1vgsYhh
|
||||||
DVDdZj+36uPExO1LOEwmskqnCnlIOuMxnex6praxB6Y8aHDZwDHWaalXhvp7rmm+
|
I3z6OEXEg5kFtOiz34y4SVCDRZGDVXiAdx8uVXXPdryFybjiZGWGEeTFDZfCAuZp
|
||||||
rkHUe1jNf6sWPkYjaeTCEBvIVDKpm/LZYUyqNwIDAQABAoIBACVmsiaDDI75VPR3
|
h0I04cqfniD5FbSPIdVVAImH9Nm1sbpLafyuXwIDAQABAoIBADTd8OoSXMoq7bHW
|
||||||
g5MGfY2js6xCbpHraXTGJI9IQMGwKhd3ru+jFPtZl7UU54lQ7P/r0TQnh3XRumZE
|
3Zk3m5Cba2fnzHB4kaPE6YHuhfbkT/MTN2+rvlYBPhTQ5mDBFnhopmIBGslr1faU
|
||||||
+ZqySK0sZ+Ty9BJjZ/5RyyOjrV4ctSWKXdr8i/S9dqNZ0kzAcr9mYHIa/k5QCXca
|
0BDK75q63BvxrAFyEqA/6L0QM5M2o/AtqO3ER1EQOapsbnMRsmORxh09A6esjmid
|
||||||
yJWQXpNMFppW1NJ9BnLGPnLh73ipEpR1AhJCD3lMXP2JtqyLa9xSJffOlxgULjcC
|
AjbFXGfEqHdGiRA4kRNZ6qOFHj8WP4FZ3/elIerl4W86FtMeuza6PUMYm1ePFG/h
|
||||||
D/Dd5+nMtIJ5w8fv9kJ65/HtOhbDB9qspPrPRhur0YivxiMjqZow01lXcy5LfFnd
|
vTGROXibW2/qrfzgsocKgdjc06Szi95hjloHlpPo3OVLywSNYuJ6dxOj11tKBIjr
|
||||||
lf+MCXeIPZ60Cms/HFlOk7qwOIxuPKwU/x95OozVrrl+Wqxjy88kcOtrmPlp89ps
|
U126cdza/2OeyWasY4tl4WVeG1Mojtya2ObvMNMOyESPzKaVzb2LIN6feH7toxdK
|
||||||
6onXo/ECgYEA0/+odOFaUeiakQ+yJFpBxbVii5ASqNXhworctHyo1PNiavBssgSx
|
5CEbzfkCgYEA5kZzFWLvUAkK/Oi0bK9b1WhmNUOcfZmPOBJenurfKSQo2R4ugvAM
|
||||||
ye9RJMtb/fIJp4VF/gYhSFPTLlQ50UE7fHFF/2FSmwEUcfBXVyKrARyKkaiLp0HB
|
zMupVs/Mum0Hl1+cvTPZDAwHx0qM3E8+Ute7SqLOMxlx7b1XCFB03RN1UN4BCSy4
|
||||||
7CmKJnGiyeZHXBCR/C4XUcMwNPT2mL31nriXLOCJTdhnfN9M7YTlv9MCgYEA0OK4
|
hCQPi+f3YjAF/Zpduquq9qS4gcIwhlo3FHGWWFFIGDesWfJrsTsssNUCgYEA07IM
|
||||||
4/cHkPAgbd2nhq/dmcQktBwu6QigYoHB6l0K2W34dmSR2dzxE45EkF8H+i1sYhiU
|
K5+AsvdrHMShMMbys4rOitY9JKUMKV1BdsyRw9z/rsWoDcqupuFTPwWrlc3D3a/i
|
||||||
ZJs3g9HR8Kp6IgAs3Lowb+df9ITY4jDI640/y1oVxZCTWpfJfi8VAZHX4jPamLo/
|
/b/cM3Wm8907fPPrauU3LF11tOkIhsP8/xRkK9BZGkjJCSLO5UvWxmlcZreGvHh+
|
||||||
w5N9nYdW0Uj10KpKzkckB3CaBea6yKR/YvDHEY0CgYAzz8rK7fyWAiQsicp+6fQj
|
QAwPWKh8MsatyFBFmn7SGFXSu88LQL+TGilpHGMCgYAOwBiDGDFIKSwhAy77f0gc
|
||||||
LsZr14VH8CXh1vBDyCe3C9ikzCe0hkMxWCTbuju8X7gOUhseDz95HsuBCiKrSqcQ
|
pXFWnBwcF4gLCXIyL81Xr09GiR5lmMbZH3qbavgsQOupkKBTpkyS7vpYk7fuLM1L
|
||||||
LdrupEl9CpGFmzitWhKzDder66Zd9UtAvZI+/QzNDVOpY39aQ6V9XRfeCXRvNhXe
|
NTJ0F3Wp5Eld9zDqAW1a8/Ih2farBchT/pNYXOWFzpmzov26BWEQJ4ECHtRI5uJ8
|
||||||
ebywwhusg9QfB7AUaKOB8wKBgCjKfYyW6vVUzyBlTpewtDeY5AoADvEW7CsQZ8va
|
VsJQqfQ6SOarZFHtqmK0eQKBgQCPwWCyXuYuogWCy6QKU4+MjL4lWca7k7jmfgVu
|
||||||
i4nWPdTw4sKGsNU+zQjcZfRm9mlZn3DeFsM5MCQtRlhpbFlWSqsvpb9cSfYxzKqj
|
fwydTP3z2RV+CB0CBhFZwqf6Wnifmkkyt475AvQUti8ncxxywqTs46qC55x6p6yu
|
||||||
FLgjSWkhSIVCauinTRTXZC8aLS/x/w20Oa2PhlasRsSO3LjXj6OcS5enbQZNiUrK
|
K1K6zgkz6Clcot6Mpyt6ISI2PnqokcpqA8aIFiIA+RoZ5Sje+TAChoVMNBUYKv/h
|
||||||
9jTpAoGBAJyZorfQPcDAEzoYsY2qDUUx8EkPX1FWJfL6iUMjgq9oBBxmk2b6bhup
|
zC0ssQKBgEXyFNRGHul7ku8Ss6ZZBZjQEOFdpu7npbZWcqy273tKOdV6uOG93rQX
|
||||||
e1qTG/hyjwjHXPH/K68q2J7HNDIZjY2BM4vbC/REMszcP/zL4jCXEPGO4WLdGCs9
|
6Ez6yxuBepSdwP716CT7o8EaSPBy+QjDH/e2qI3rIUHzfPwAwf4kGbNa6relTCVR
|
||||||
+fDXcu0ObBzTgL0HJ5bqhcybhRy6w5dQoSviOjSYkuJSp8+AXSV7
|
fLrzEICSbFZKST/zeKvrY0ACOCIn8b6LiiP7GJfnV8bvvpTWXyil
|
||||||
-----END RSA PRIVATE KEY-----
|
-----END RSA PRIVATE KEY-----
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
-----BEGIN DH PARAMETERS-----
|
-----BEGIN DH PARAMETERS-----
|
||||||
MIIBCAKCAQEAqMIoOYH2rh4xZg8WaUo13fNetYxnqmh7xLmozkDHSEcKsBcCtlxJ
|
MIIBCAKCAQEAhDA93df5Qa7pMWiqJ8IeCDw4fCIJCNbzRklS2saOeQRkUY/kPy07
|
||||||
if1vKRMfa6z4gT7mS2VaFOMkXPlwDxpnr4CAcfXcy8rSrpItTxlGrNVZRSd24HvH
|
EByFWUDNtgtWRx7YndJKwyFepHXxI3P0DDuSPYKq/bfiWDr/cUmTBJcpPmg6w/SU
|
||||||
IxXIPvaFwQWqXBvtxFwFRrMZOo+KICqKM3KsqJbz6DWtum/dKpGO/dtcQq2ZPWe1
|
ReOB6vORXyF9iytyLCKk1Pyo2nXOdpADcTflhi+zxTSpGLtPAU2XIYENtmC4HKJm
|
||||||
Dmb/yS4lqEngU/td6tZ558IjQgFnXC0zjquxrxy/LorBW751wiVzOGAjj/4ybdIx
|
y6nbSIbe4BA74bxyqzp6RVuMvyHAgCjPDwvHlp5UV1Mjtr1aNqgzpLQSjK4VwiJ+
|
||||||
GuO1UEcps+18ealGEThHjDZwC5w69Zo+82Ned2Vl8nqk0klaJv+5CaOhmNmTR3Sj
|
DZ48/1D9IYksDl8NWJopFpudyPD1WFou/CZ6PYsjprFrTKVPqoFD5Zj6zPey9C70
|
||||||
PDD7nFgCnBQ9UHde6j6DnytNMJRkrk3ucwIBAg==
|
Go0uHRNPr9UrhwCqDEKNszulME8heSVSQwIBAg==
|
||||||
-----END DH PARAMETERS-----
|
-----END DH PARAMETERS-----
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
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
|
||||||
-----END RSA PRIVATE KEY-----
|
-----END RSA PRIVATE KEY-----
|
||||||
|
|
|
@ -1,24 +1,23 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIEETCCAvmgAwIBAgIJAK9UFY6LVBSZMA0GCSqGSIb3DQEBCwUAMIGeMQswCQYD
|
MIID3TCCAsWgAwIBAgIJAICSLj3FNe/DMA0GCSqGSIb3DQEBCwUAMIGEMQswCQYD
|
||||||
VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNVGhvdXNhbmQg
|
VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTELMAkGA1UEBwwCTEExEDAOBgNV
|
||||||
T2FrczEVMBMGA1UECgwMRGlnaU5vdyBJbmMuMRQwEgYDVQQLDAtkZXZlbG9wbWVu
|
BAoMB2RpZ2lub3cxDDAKBgNVBAsMA3JuZDEQMA4GA1UEAwwHZGlnaW5vdzEhMB8G
|
||||||
dDESMBAGA1UEAwwJbG9jYWxob3N0MSEwHwYJKoZIhvcNAQkBFhJicmFuZG9uQGRp
|
CSqGSIb3DQEJARYSYnJhbmRvbkBkaWdpbm93Lml0MB4XDTE1MTIyMjE5NDYyNloX
|
||||||
Z2lub3cuaXQwHhcNMTUwOTI4MDQyMzUwWhcNMzcwODIzMDQyMzUwWjCBnjELMAkG
|
DTE2MTIyMTE5NDYyNlowgYQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9y
|
||||||
A1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVRob3VzYW5k
|
bmlhMQswCQYDVQQHDAJMQTEQMA4GA1UECgwHZGlnaW5vdzEMMAoGA1UECwwDcm5k
|
||||||
IE9ha3MxFTATBgNVBAoMDERpZ2lOb3cgSW5jLjEUMBIGA1UECwwLZGV2ZWxvcG1l
|
MRAwDgYDVQQDDAdkaWdpbm93MSEwHwYJKoZIhvcNAQkBFhJicmFuZG9uQGRpZ2lu
|
||||||
bnQxEjAQBgNVBAMMCWxvY2FsaG9zdDEhMB8GCSqGSIb3DQEJARYSYnJhbmRvbkBk
|
b3cuaXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIcoIFbOR/nyAq
|
||||||
aWdpbm93Lml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoIAKszKH
|
SpEgGMlHxxJeWyK466KuVsFDUr6t5xVuHZsx0OioEKTeJt4bDin+yY7EmIf/2vGl
|
||||||
SLHzNPSrI/unpfhMYqBz5V8u+31uY02l2YSt+xgUs7tiv3pD3Q0b9B7AyeQQXCPq
|
wJDRetJ40ZqwvEYHxFw2B6dEWifIE+ZMCNI7zkBrviDwJQFdphKCTSExZA3GSQd5
|
||||||
Soo7HK3nUkrafWBLXVBZwpVnZtLleXTPwB1xZXP2LJMCTxKIN0EbThU4K+PaMgzL
|
wa670Xou03lMztcbpN3s5NEH5sMQZ3B+fLhupzYQtSyP30JU3FI1zmHR0kT0zp6O
|
||||||
q6pr8uOZpzxlJPHMH7W8Nf+8tlNa4WveuP2gDXvrk+hVNL68Dctt0Tl9BKsMNyOP
|
8iN1FAUW180oaBPc7uKcR0NKk9l94z4mZMGv+/PaOcdpKwPt32FYpijsqnvisvRA
|
||||||
drOKbgFO7vTo5jI/GoIaQpfVYitazUBOiGY+7tNpEn+0i+dNorotNT1C5nRRkg7X
|
lIf3u6Bv6DyQMCSpXVtBpV3On6cLvj8ZtUsH0T5gf7PO+zbH2ctg8keSeJrkpF86
|
||||||
sQkXzHuuf6CExZ+ckYycg1KDhEAMGE2GLUoJ1ayP7ioHwxqXZBRCPpuFGx/d0WSw
|
ZGM+cJ1XAgMBAAGjUDBOMB0GA1UdDgQWBBSE5MJdxer8dNwS3MD95CpxWl9C4zAf
|
||||||
nTIDMpi87PqdUQIDAQABo1AwTjAdBgNVHQ4EFgQUOUfhWvfT6NwX54GJty0g5xle
|
BgNVHSMEGDAWgBSE5MJdxer8dNwS3MD95CpxWl9C4zAMBgNVHRMEBTADAQH/MA0G
|
||||||
UdYwHwYDVR0jBBgwFoAUOUfhWvfT6NwX54GJty0g5xleUdYwDAYDVR0TBAUwAwEB
|
CSqGSIb3DQEBCwUAA4IBAQAxIma18hhpfjz0qvXw+AqeZhJJqW4299qq18H0r5DD
|
||||||
/zANBgkqhkiG9w0BAQsFAAOCAQEAVFmV+yCwKJxZu2qV3SRBBVex3uvgzmjKa98S
|
SCovTznPZ2gykIpkMXs8l5LynC+ikWFBLhw3nQTpGnUmPOPAcNsaX5LU/4Pk6pbx
|
||||||
Be+ns9yGX2nUE+m7ZeEu3iZWGIiW5HwtuYdtf1XpgnhK6a9eAw6IqTx2l2z6sot1
|
1l+P6OTNiW7cSMeg83Rj93BEzWgzIZIlzb4u++lxF0yPmUaAoi5frtnKrlPY7E4k
|
||||||
lxWtSVR/fUEo0QV6TMkOzCZCfHQDENMk+RPcVihx7CbxbNdW9dFPRnOaxu1woVeV
|
JAIRpsPOLXrElEX29zExAHxP3qG1gfzbbHLmm8oeOqrrPwJFLa3JCB4/Btn3FgCH
|
||||||
KDTp1ZYWLW77QWAXTiYrgWBnHHiDVJb0+iPdJ4t4tjTsQPbcClHPEXvsuAtODuZg
|
zAz+aHk7XB+nLb3Ts1IlwM3i1lwi3ft3Rlvgg3CDhff4CcyaKJbYu286qMeKyifk
|
||||||
N+pkRw5BuVbyC30B+Sa1DXz5l2XU2/lGfsQ91bAedqju7vQCOJvbDlGC+bMZP2hO
|
316Y5DCosYoAsPkQeWHJdvwBUPzAqtkxGlAW9eSQSBJt
|
||||||
wDnoFyWYjkaI4/u2L1J28MNDp627er2OvwJTph2++tWcvBI9tg==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -31,6 +31,7 @@ var defaults={
|
||||||
id : os.hostname(),
|
id : os.hostname(),
|
||||||
encoding : 'utf8',
|
encoding : 'utf8',
|
||||||
rawBuffer : false,
|
rawBuffer : false,
|
||||||
|
sync : false,
|
||||||
silent : false,
|
silent : false,
|
||||||
maxConnections : 100,
|
maxConnections : 100,
|
||||||
retry : 500,
|
retry : 500,
|
||||||
|
|
|
@ -1,15 +1,19 @@
|
||||||
{
|
{
|
||||||
"name": "node-ipc",
|
"name": "node-ipc",
|
||||||
"version": "4.1.0",
|
"version": "5.0.0",
|
||||||
"description": "A nodejs module for local and remote Inter Process Communication (IPC), Neural Networking, and able to facilitate machine learning.",
|
"description": "A nodejs module for local and remote Inter Process Communication (IPC), Neural Networking, and able to facilitate machine learning.",
|
||||||
"main": "node-ipc.js",
|
"main": "node-ipc.js",
|
||||||
"directories": {
|
"directories": {
|
||||||
"example": "example"
|
"example": "example"
|
||||||
},
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=1.0.0"
|
||||||
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"colors": "*",
|
"colors": "*",
|
||||||
"event-pubsub": "*",
|
"event-pubsub": "*",
|
||||||
"js-message": "*",
|
"js-message": "*",
|
||||||
|
"js-queue": "^0.1.2",
|
||||||
"node-cmd": "*"
|
"node-cmd": "*"
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
|
|
Loading…
Reference in a new issue