python和nodejs数据传递_在nodejs和Python之间交换数据

我对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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值