概述
我对node和插座.io. 我有一个nodejs服务器,我正试图使用它来生成Python进程,并在web页面之间传递数据。在Python端,我尝试使用Python的stdin/stdout管道。在
从Python到nodejs,再到服务器,一切都很好。但是,当我尝试使用标准写入,节点崩溃,并出现“结束后写入”错误。我想知道我用来从Python接收的套接字是否与我试图发回的套接字冲突。我正在使用计时器每秒向网页发送数据。在
这似乎与Python在调用时期望EOF有关系统标准读入行(),但是,当我使用标准结束()从nodejs那里,我就得到了错误。有趣的是,如果我不打电话标准结束,我没有收到错误,但我也没有收到任何东西。在
非常感谢任何帮助。恐怕我对插座.io看看这里出了什么问题。谢谢您。在
在NODEJS中:
生成Python进程:var util = require('util'),
spawn = require('child_process').spawn,
py = spawn('python', ['data_collect.py']);
从Python接收数据:
^{pr2}$
向浏览器发送数据:var listener = io.listen(server);
listener.sockets.on('connection', function (socket) {
socket.emit( 'dataPacket1', {variable_1: data1});
socket.emit( 'dataPacket2', {variable_2: data2});
socket.emit( 'dataPacket3', {variable_3: data3});
}, 1000);
从浏览器接收并发送到Python:socket.on('messageFromBrowser', function(data) {
py.stdin.setEncoding('utf-8');
py.stdin.write(JSON.stringify(data.browser_value+'n'));
py.stdin.end();
})
在PYTHON中:
发送到nodejs:output = "dataout"
sys.stdout.write(output)
sys.stdout.flush()
从nodejs接收:lines = []
while True:
line = sys.stdin.readline()
if line !='':
lines.append(line)
else:
break
return lines
最后
以上就是野性金针菇为你收集整理的python和nodejs数据传递_在nodejs和Python之间交换数据的全部内容,希望文章能够帮你解决python和nodejs数据传递_在nodejs和Python之间交换数据所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复