在Node.js中的两个独立运行的进程之间发送消息

我在本地机器上有一个Adobe AIR应用程序,它通过套接字连接与远程node.js服务器脚本(socket-script.js)进行通信。 此外,我通过命令行启动一个新的node.js进程,并向第二个服务器脚本(terminal-script.js)发送一些额外的参数。 问题:如何将参数从terminal-script.js发送到socket-script.js? 之后,socket-script.js应该将参数广播到AIR应用程序。 任何人都知道如何连接Node.js中的两个独立运行的进程? 谢谢。

在这里输入图像说明

插图链接

       

网上收集的解决方案 "在Node.js中的两个独立运行的进程之间发送消息"

使用服务器在进程之间进行通信:

sockets的script.js

var net = require('net'); var app = null; var server = net.createServer(function(socket) { socket.on('data', function(data){ if(data.indexOf('terminal:') >-1){ if(app){ app.write(data); } } else if(data.indexOf('app:') >-1){ app = socket; } }); }); 

terminal的script.js:

 var net = require('net'); var client = net.connect({port: 9001}, function() { client.write('terminal:' + process.argv[2]); }); 

应用:

 var net = require('net'); var client = net.connect({port: 9001}, function() { client.write('app:connect'); }); client.on('data', function(data){ if(data.indexOf('terminal:') >-1){ // got terminal data } }); 

我设想做这个工作的唯一方法是这样的:

1)你需要让terminal-script.js在socket上监听。 像这样:

 var arguments = process.args.splice(2); var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(arguments[0]); }).listen(8000, '127.0.0.1'); 

2)只需从套接字脚本向terminal脚本发出请求:

 //somewhere in socket-script use this to grab the value from the terminal script. var http = require('http'); var options = { host: 'terminal-script-host.com', port: '8000', path: '/' }; var req = http.get(options, function(res) { res.on('data', function (data) { console.log('socket-script got the data from terminal-script: ' + data); }); }); 

不知道这是否有帮助。 但是我可以告诉你几乎不可能从terminal脚本中将某些东西“插入”到套接字脚本中,而不是以某种方式处理相同的请求。