如何在Node.js程序中使用共享内存?

12

我有一些在服务器上运行的C++服务,以及一个监听特定端口的node服务器程序。我可以在C++服务和Node.js程序之间使用共享内存吗?我希望用户通过node服务器发送数据,然后那些C++服务访问它们。这是否可能?


请在此处查看:https://dev59.com/AWgu5IYBdhLWcg3w8Lev - Pacerier
2个回答

5

我尝试编写了一个从nodejs访问共享内存的C / C ++绑定。

https://github.com/supipd/node-shm

仍在进行中(但对我来说是有效的),如果有错误或建议,请告诉我。


3
您可以编写一个与C/C++相关的绑定。请从http://howtonode.org/how-to-module(“编写绑定”部分)开始。
在绑定代码中,您可以使用共享内存来访问C++服务,但如果有意义的话,直接链接到服务可能更合理。

我不建议在Node.js中使用共享内存。 难道你不能让你的Node.js通过TCP或任何基于消息的方式与你的服务通信吗? - Floby
1
@Floby:当Node.js应用程序和C++服务在同一个操作系统中时,使用TCP是一个好主意吗? - JalalJaberi
1
@Floby,TCP很慢。这就是使用共享内存的原因。 - Pacerier
1
@Floby,相比共享内存,确实是这样。 - Maarten
1
共享内存需要极其小心地使用。但对于大数据集,它比TCP快上数百万倍。 - Artelius
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接