added TCP examples for multiple clients and diconnections
This commit is contained in:
parent
45d0a12c2f
commit
ba6790f54e
5 changed files with 144 additions and 3 deletions
43
example/TCPSocket/Multi-Client-Broadcast/goodbye-client.js
Normal file
43
example/TCPSocket/Multi-Client-Broadcast/goodbye-client.js
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
|
/***************************************\
|
||||||
|
*
|
||||||
|
* You should start both hello and world
|
||||||
|
* then you will see them communicating.
|
||||||
|
*
|
||||||
|
* *************************************/
|
||||||
|
|
||||||
|
ipc.config.id = 'goodbye';
|
||||||
|
ipc.config.retry= 1500;
|
||||||
|
|
||||||
|
ipc.connectToNet(
|
||||||
|
'world',
|
||||||
|
function(){
|
||||||
|
ipc.of.world.on(
|
||||||
|
'connect',
|
||||||
|
function(){
|
||||||
|
ipc.log('## connected to world ##'.rainbow, ipc.config.delay);
|
||||||
|
ipc.of.world.emit(
|
||||||
|
'app.message',
|
||||||
|
{
|
||||||
|
id : ipc.config.id,
|
||||||
|
message : 'goodbye'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.of.world.on(
|
||||||
|
'disconnect',
|
||||||
|
function(){
|
||||||
|
ipc.log('disconnected from world'.notice);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.of.world.on(
|
||||||
|
'kill.connection',
|
||||||
|
function(data){
|
||||||
|
ipc.log('world requested kill.connection'.notice);
|
||||||
|
ipc.disconnect('world');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
49
example/TCPSocket/Multi-Client-Broadcast/hello-client.js
Normal file
49
example/TCPSocket/Multi-Client-Broadcast/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= 1500;
|
||||||
|
|
||||||
|
ipc.connectToNet(
|
||||||
|
'world',
|
||||||
|
function(){
|
||||||
|
ipc.of.world.on(
|
||||||
|
'connect',
|
||||||
|
function(){
|
||||||
|
ipc.log('## connected to world ##'.rainbow, ipc.config.delay);
|
||||||
|
ipc.of.world.emit(
|
||||||
|
'app.message',
|
||||||
|
{
|
||||||
|
id : ipc.config.id,
|
||||||
|
message : 'hello'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
);
|
||||||
|
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.messgae);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.of.world.on(
|
||||||
|
'kill.connection',
|
||||||
|
function(data){
|
||||||
|
ipc.log('world requested kill.connection'.notice);
|
||||||
|
ipc.disconnect('world');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
51
example/TCPSocket/Multi-Client-Broadcast/world-server.js
Normal file
51
example/TCPSocket/Multi-Client-Broadcast/world-server.js
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
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;
|
||||||
|
|
||||||
|
var messages={
|
||||||
|
goodbye:false,
|
||||||
|
hello:false
|
||||||
|
}
|
||||||
|
|
||||||
|
ipc.serveNet(
|
||||||
|
function(){
|
||||||
|
ipc.server.on(
|
||||||
|
'app.message',
|
||||||
|
function(data,socket){
|
||||||
|
ipc.log('got a message from'.debug, (data.id).variable, (data.message).data);
|
||||||
|
messages[data.id]=true;
|
||||||
|
ipc.server.emit(
|
||||||
|
socket,
|
||||||
|
'app.message',
|
||||||
|
{
|
||||||
|
id : ipc.config.id,
|
||||||
|
message : data.message+' world!'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
if(messages.hello && messages.goodbye){
|
||||||
|
ipc.log('got all required events, telling clients to kill connection'.good);
|
||||||
|
ipc.server.broadcast(
|
||||||
|
'kill.connection',
|
||||||
|
{
|
||||||
|
id:ipc.config.id
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
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();
|
|
@ -157,8 +157,6 @@ function serveNet(host,port,UDPType,callback){
|
||||||
if(UDPType)
|
if(UDPType)
|
||||||
ipc.server[UDPType]=true;
|
ipc.server[UDPType]=true;
|
||||||
|
|
||||||
console.log(callback.toString())
|
|
||||||
|
|
||||||
ipc.server.on(
|
ipc.server.on(
|
||||||
'start',
|
'start',
|
||||||
callback
|
callback
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "node-ipc",
|
"name": "node-ipc",
|
||||||
"version": "0.9.9",
|
"version": "0.9.11",
|
||||||
"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": {
|
||||||
|
|
Loading…
Reference in a new issue