From 27b2e135dba9415b60df1b5bee7256b71726a974 Mon Sep 17 00:00:00 2001 From: logsol Date: Sat, 28 Jul 2012 17:50:34 +0200 Subject: [PATCH] added fork test --- fork/child.js | 27 +++++++++++++++++++++++++++ fork/server.js | 20 ++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100755 fork/child.js create mode 100755 fork/server.js diff --git a/fork/child.js b/fork/child.js new file mode 100755 index 0000000..e3e7947 --- /dev/null +++ b/fork/child.js @@ -0,0 +1,27 @@ +console.log('spawned'); + +process.on('message', function (message, handle) { + var pack = message.split(':'), + command = pack[0], + data = pack[1]; + + switch(command) { + case 'id': + console.log('This is child #' + data); + break; + + case 'server': + console.log('child #' + data + ' got server.', handle); + break; + + case 'socket': + console.log('child #' + data + ' got socket.', handle); + handle.on('data', onSocketMessage); + break; + } +}); + + +function onSocketMessage (data) { + console.log('onSocketMessage', data.toString('utf-8')); +} \ No newline at end of file diff --git a/fork/server.js b/fork/server.js new file mode 100755 index 0000000..de8b7f8 --- /dev/null +++ b/fork/server.js @@ -0,0 +1,20 @@ +var net = require('net'), + fork = require('child_process').fork; + +var children = []; + +var server = net.createServer(function (socket) { + + + socket.write('Hey Client\r\n'); + + var child = fork('child.js'); + children.push(child); + + child.send('id:' + children.length); + child.send('server:handle', server); + child.send('socket:handle', socket); +}); + +server.listen(1337, '127.0.0.1'); +