在Python中,如何与正在运行的Node.js进程持续通信?
(如果这有点模糊,我深表歉意,因为我刚刚开始使用Python。) 我正在创建一个SublimiteText 2 intellisense插件,该插件与node.js脚本生成的正在运行的命令行节点服务器进行通信。我想与之通信的节点应用程序可以在此处找到:。(请注意,调用tss命令后,它将启动自己的子流程命令行repl,该子流程需要接收命令才能执行。将命令发送到该命令行本身是一个完全不同的问题,我尚未解决。) 我可以通过以下方式与节点成功“对话”:在Python中,如何与正在运行的Node.js进程持续通信?,python,node.js,plugins,io,sublimetext2,Python,Node.js,Plugins,Io,Sublimetext2,(如果这有点模糊,我深表歉意,因为我刚刚开始使用Python。) 我正在创建一个SublimiteText 2 intellisense插件,该插件与node.js脚本生成的正在运行的命令行节点服务器进行通信。我想与之通信的节点应用程序可以在此处找到:。(请注意,调用tss命令后,它将启动自己的子流程命令行repl,该子流程需要接收命令才能执行。将命令发送到该命令行本身是一个完全不同的问题,我尚未解决。) 我可以通过以下方式与节点成功“对话”: self.process = subprocess
self.process = subprocess.Popen( self.args,
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.STDOUT)
self.result = self.process.communicate()[0]
使用
self.thread = NodeJS( args )
self.thread.start()
self.handle_thread( self.thread )
问题是一旦执行node.js文件,它就会关闭管道并退出IO进程。对流程的后续调用返回一个
ValueError: I/O operation on closed file
我的问题是:如何启动node应用程序,在后台运行它,然后从Python向其连续发送“管道”命令
我想
任何帮助都将不胜感激。在Python中创建Unix域套接字或邮箱,在Node.js中连接到它,并将其用作您的通信通道。
self.result=self.process.communicate()
关闭管道