本文介绍了Node.js的进程间和服务器间事件发射器/侦听器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
目前,我在应用程序内部使用EventEmitter2作为消息总线,我真的很喜欢它。
不管怎样,现在我需要一个不仅能在进程内工作,而且能在进程间工作的消息总线。我的理想人选是…
- …与EventEmitter2(替代方案)兼容API,
- …无需专用服务器或外部服务(如数据库、消息队列、…)即可工作,仅使用操作系统资源,
- …用纯JavaScript编写,
- …在内存中运行,因此不需要持久性。
我所做的不需要:
- 它不需要在Windows上运行,OS X和Linux都可以。
- 如果它只在一台计算机上工作,也可以,它不需要是网络感知的。
有什么想法或提示吗?
PS:如果你能推荐一款可用的产品是可以的,但如果你能给我指个方向,告诉我如何自己做这件无服务器的事情,也是很好的。
推荐答案
这是我看到的选项。
cess.fork/Send。如果两个进程都是节点,则节点核心通过此API提供简单的事件驱动的IPC机制。它与
process.fork
配对,因此如果您的进程是一个基于节点的主进程和几个基于节点的辅助/支持子进程,process.send
可能是一个可行的选择。http://nodejs.org/docs/latest/api/all.html#all_child_process_fork_modulepath_args_options- 基于事件,但不是EventEmitter2插件
- 双向
- 高效
- 仅使用操作系统资源
- 内存中
- Java脚本
使用节点核心的TCP网络通过Unix域套接字进行连接。http://nodejs.org/docs/latest/api/all.html#all_net_connect_options_connectionlistener
- 仍然是基于事件的原始数据流,而不是高级消息
- 双向
- 内存中
- Java脚本
好旧的tcp。
- 仍然是基于事件的原始数据流,而不是高级消息
- 双向
- 内存中
- Java脚本
节点到节点socket.io
- 基于事件,但不是EventEmitter2插件
- 双向
- 内存中
- Java脚本
这篇关于Node.js的进程间和服务器间事件发射器/侦听器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!