Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Node.js中的两个不同进程之间进行通信大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
问题是:

>假设我们有两个Node.js进程运行:example1.js和example2.js。
>在example1.js中有函数func1(input),返回result1作为结果。
>是否有一种方法从example2.js内调用func1(输入)并获得result1作为结果?

从我学到的关于Node.js,我只找到一个使用套接字进行通信的解决方案。这不是理想的,因为它将需要一个进程在端口上侦听。如果可能,我希望避免。

编辑:在一些问题后,我想添加在层次结构example1.js不能是example2.js的子进程,而是相反。如果它有帮助 – 只能有一个example1.js处理自己的数据和许多example2.js的处理自己的数据数据从第一个进程。

解决方法

你描述的用例使我想到 dnode,使用它可以很容易地暴露功能被不同的进程调用,由dnode协调,使用网络套接字(和socket.io,所以你可以在浏览器中使用相同的机制) 。

另一种方法是使用消息队列,有many good bindings for different message queues

最简单的方式,我的知识,是使用child_process.fork()

所以,对于你的例子,你可以有example2.js:

var fork = require('child_process').fork;
var example1 = fork(__dirname + '/example1.js');

example1.on('message',function(responsE) {
  console.log(responsE);
});

example1.send({func: 'input'});

和example1.js:

function func(input) {
  process.send('Hello ' + input);
}

process.on('message',function(m) {
  func(m);
});

大佬总结

以上是大佬教程为你收集整理的在Node.js中的两个不同进程之间进行通信全部内容,希望文章能够帮你解决在Node.js中的两个不同进程之间进行通信所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。