我有一个运行在Raspberry Pi 3 B +上的node.js服务器。 (我正在使用节点,因为我需要运行良好的蓝牙库的功能)。
一旦节点服务器从蓝牙设备接收到一条消息,我希望它向在同一设备上运行的另一个python脚本触发事件/命令/调用。
做到这一点的最佳方法是什么?我研究了产生子进程并在其中运行脚本的过程,但这似乎很麻烦……此外,我是否应该在它们之间建立套接字并通过它进行数据流传输?我想这经常做,共识解决方案是什么?
答案 0 :(得分:1)
运行子进程是您运行python脚本的方式。这就是您从nodejs或任何其他程序(除了python程序)中执行此操作的方式。
在python脚本和nodejs程序之间进行通信的选项有很多。最简单的是stdin / stdout,它在创建子进程时自动为您设置,但是您也可以为nodejs应用提供一个本地http服务器,python脚本可以与之通信,反之亦然。
或者,在两者之间设置常规套接字。
如果您现在在注释中指出,您的python脚本已经在运行,那么您可能希望在nodejs应用中使用本地http服务器,并且该python脚本可以随时向该本地http服务器发送一个http请求。它具有一些要传递给nodejs应用程序的数据。或者,如果您主要希望数据沿相反方向流动,则可以将http服务器放在python应用程序中,然后让nodejs服务器将数据发送到python应用程序。
如果您想要良好的双向功能,则还可以在两者之间建立一个socket.io连接,然后可以随时轻松地以任何一种方式发送消息。