Merge pull request #9 from RIAEvangelist/brandon
when ipc.log is run, it will automatically convert objects to strings
This commit is contained in:
commit
fc446bb421
6 changed files with 193 additions and 10 deletions
48
example/UDPSocket/Multi-Client-Broadcast/goodbye-client.js
Normal file
48
example/UDPSocket/Multi-Client-Broadcast/goodbye-client.js
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
|
/***************************************\
|
||||||
|
*
|
||||||
|
* Since there is no client relationship
|
||||||
|
* with UDP sockets sockets are not kept
|
||||||
|
* open.
|
||||||
|
*
|
||||||
|
* This means the order sockets are opened
|
||||||
|
* is important.
|
||||||
|
*
|
||||||
|
* Start World first. Then you can start
|
||||||
|
* hello or goodbye in any order you
|
||||||
|
* choose.
|
||||||
|
*
|
||||||
|
* *************************************/
|
||||||
|
|
||||||
|
ipc.config.id = 'goodbye';
|
||||||
|
ipc.config.retry= 1500;
|
||||||
|
|
||||||
|
ipc.serveNet(
|
||||||
|
8002, //we set the port here because the hello client and world server are already using the default of 8000 and the port 8001. So we can not bind to those while hello and world are connected to them.
|
||||||
|
'udp4',
|
||||||
|
function(){
|
||||||
|
ipc.server.on(
|
||||||
|
'message',
|
||||||
|
function(data){
|
||||||
|
ipc.log('got Data');
|
||||||
|
ipc.log('got a message from '.debug, data.id.variable ,' : '.debug, data.message.data);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.server.emit(
|
||||||
|
{
|
||||||
|
address : 'localhost',
|
||||||
|
port : ipc.config.networkPort
|
||||||
|
},
|
||||||
|
'message',
|
||||||
|
{
|
||||||
|
id : ipc.config.id,
|
||||||
|
message : 'Goodbye'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
||||||
|
|
||||||
|
ipc.server.start();
|
48
example/UDPSocket/Multi-Client-Broadcast/hello-client.js
Normal file
48
example/UDPSocket/Multi-Client-Broadcast/hello-client.js
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
|
/***************************************\
|
||||||
|
*
|
||||||
|
* Since there is no client relationship
|
||||||
|
* with UDP sockets sockets are not kept
|
||||||
|
* open.
|
||||||
|
*
|
||||||
|
* This means the order sockets are opened
|
||||||
|
* is important.
|
||||||
|
*
|
||||||
|
* Start World first. Then you can start
|
||||||
|
* hello or goodbye in any order you
|
||||||
|
* choose.
|
||||||
|
*
|
||||||
|
* *************************************/
|
||||||
|
|
||||||
|
ipc.config.id = 'hello';
|
||||||
|
ipc.config.retry= 1500;
|
||||||
|
|
||||||
|
ipc.serveNet(
|
||||||
|
8001, //we set the port here because the world server is already using the default of 8000. So we can not bind to 8000 while world is using it.
|
||||||
|
'udp4',
|
||||||
|
function(){
|
||||||
|
ipc.server.on(
|
||||||
|
'message',
|
||||||
|
function(data){
|
||||||
|
ipc.log('got Data');
|
||||||
|
ipc.log('got a message from '.debug, data.id.variable ,' : '.debug, data.message.data);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.server.emit(
|
||||||
|
{
|
||||||
|
address : 'localhost',
|
||||||
|
port : ipc.config.networkPort
|
||||||
|
},
|
||||||
|
'message',
|
||||||
|
{
|
||||||
|
id : ipc.config.id,
|
||||||
|
message : 'Hello'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
||||||
|
|
||||||
|
ipc.server.start();
|
63
example/UDPSocket/Multi-Client-Broadcast/world-server.js
Normal file
63
example/UDPSocket/Multi-Client-Broadcast/world-server.js
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
|
/***************************************\
|
||||||
|
*
|
||||||
|
* Since there is no client relationship
|
||||||
|
* with UDP sockets sockets are not kept
|
||||||
|
* open.
|
||||||
|
*
|
||||||
|
* This means the order sockets are opened
|
||||||
|
* is important.
|
||||||
|
*
|
||||||
|
* Start World first. Then you can start
|
||||||
|
* hello or goodbye in any order you
|
||||||
|
* choose.
|
||||||
|
*
|
||||||
|
* *************************************/
|
||||||
|
|
||||||
|
ipc.config.id = 'world';
|
||||||
|
ipc.config.retry= 1500;
|
||||||
|
|
||||||
|
var messages={
|
||||||
|
goodbye:false,
|
||||||
|
hello:false
|
||||||
|
}
|
||||||
|
|
||||||
|
ipc.serveNet(
|
||||||
|
'udp4',
|
||||||
|
function(){
|
||||||
|
console.log(123);
|
||||||
|
ipc.server.on(
|
||||||
|
'message',
|
||||||
|
function(data,socket){
|
||||||
|
ipc.log('got a message from '.debug, data.id.variable ,' : '.debug, data.message.data);
|
||||||
|
messages[data.id]=true;
|
||||||
|
ipc.server.emit(
|
||||||
|
socket,
|
||||||
|
'message',
|
||||||
|
{
|
||||||
|
id : ipc.config.id,
|
||||||
|
message : data.message+' world!'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
if(messages.hello && messages.goodbye){
|
||||||
|
ipc.log('got all required events, telling evryone how muchg I am loved!'.good);
|
||||||
|
ipc.server.broadcast(
|
||||||
|
'message',
|
||||||
|
{
|
||||||
|
id : ipc.config.id,
|
||||||
|
message : 'Everybody Loves The World! Got messages from hello and goodbye!'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log(ipc.server);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
ipc.server.define.listen.message='This event type listens for message strings as value of data key.';
|
||||||
|
|
||||||
|
ipc.server.start();
|
|
@ -13,6 +13,10 @@ var ipc=require('../../../node-ipc');
|
||||||
* machine, unlike TCP or Unix Sockts
|
* machine, unlike TCP or Unix Sockts
|
||||||
* which can share on the same machine.
|
* which can share on the same machine.
|
||||||
*
|
*
|
||||||
|
* Since there is no open client server
|
||||||
|
* relationship, you should start world
|
||||||
|
* first and then hello.
|
||||||
|
*
|
||||||
* *************************************/
|
* *************************************/
|
||||||
|
|
||||||
ipc.config.id = 'hello';
|
ipc.config.id = 'hello';
|
||||||
|
@ -26,7 +30,7 @@ ipc.serveNet(
|
||||||
'message',
|
'message',
|
||||||
function(data){
|
function(data){
|
||||||
ipc.log('got Data');
|
ipc.log('got Data');
|
||||||
ipc.log('got a message from '.debug, data.from.variable ,' : '.debug, data.message.variable);
|
ipc.log('got a message from '.debug, data.id.variable ,' : '.debug, data.message.data);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ipc.server.emit(
|
ipc.server.emit(
|
||||||
|
@ -36,7 +40,7 @@ ipc.serveNet(
|
||||||
},
|
},
|
||||||
'message',
|
'message',
|
||||||
{
|
{
|
||||||
from : ipc.config.id,
|
id : ipc.config.id,
|
||||||
message : 'Hello'
|
message : 'Hello'
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,10 +2,22 @@ var ipc=require('../../../node-ipc');
|
||||||
|
|
||||||
/***************************************\
|
/***************************************\
|
||||||
*
|
*
|
||||||
* You should start both hello and world
|
* UDP Client is really a UDP server
|
||||||
* then you will see them communicating.
|
|
||||||
*
|
*
|
||||||
* *************************************/
|
* Dedicated UDP sockets on the same
|
||||||
|
* machine can not be bound to in the
|
||||||
|
* traditional client/server method
|
||||||
|
*
|
||||||
|
* Every UDP socket is it's own UDP server
|
||||||
|
* And so must have a unique port on its
|
||||||
|
* machine, unlike TCP or Unix Sockts
|
||||||
|
* which can share on the same machine.
|
||||||
|
*
|
||||||
|
* Since there is no open client server
|
||||||
|
* relationship, you should start world
|
||||||
|
* first and then hello.
|
||||||
|
*
|
||||||
|
* *************************************//
|
||||||
|
|
||||||
ipc.config.id = 'world';
|
ipc.config.id = 'world';
|
||||||
ipc.config.retry= 1500;
|
ipc.config.retry= 1500;
|
||||||
|
@ -17,19 +29,18 @@ ipc.serveNet(
|
||||||
ipc.server.on(
|
ipc.server.on(
|
||||||
'message',
|
'message',
|
||||||
function(data,socket){
|
function(data,socket){
|
||||||
ipc.log('got a message from '.debug, data.from.variable ,' : '.debug, data.message.variable);
|
ipc.log('got a message from '.debug, data.id.variable ,' : '.debug, data.message.data);
|
||||||
ipc.server.emit(
|
ipc.server.emit(
|
||||||
socket,
|
socket,
|
||||||
'message',
|
'message',
|
||||||
{
|
{
|
||||||
from : ipc.config.id,
|
id : ipc.config.id,
|
||||||
message : data.message+' world!'
|
message : data.message+' world!'
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log(ipc.server);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
11
node-ipc.js
11
node-ipc.js
|
@ -45,8 +45,17 @@ function log(){
|
||||||
if(ipc.config.silent)
|
if(ipc.config.silent)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
var args=Array.prototype.slice.call(arguments);
|
||||||
|
|
||||||
|
for(var i=0, count=args.length; i<count; i++){
|
||||||
|
if(typeof args[i] != 'object')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
args[i]=JSON.stringify(args[i]);
|
||||||
|
}
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
Array.prototype.slice.call(arguments).join(' ')
|
args.join(' ')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue