我尝试将传感器数据(在python中)从我的覆盆子pi3发送到我的本地节点服务器。
我找到了一个名为requests的python模块,用于将数据发送到服务器。
在这里,我尝试使用socket.io将值22(稍后将有传感器数据)从我的覆盆子pi3发送到我的本地节点服务器.requests.get()可以正常工作,但是put commmand没有&#39 ; t发送数据。
你能告诉我错误在哪里吗?#!/usr/bin/env python
#
import requests
r = requests.get('http://XXX.XXX.XXX.XXX:8080');
print(r)
r = requests.put('http://XXX.XXX.XXX.XXX:8080', data = {'rasp_param':'22'});
在我的server.js中,我尝试获取数据,但不知何故没有收到
server.js
var express = require('express')
, app = express()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server)
, conf = require('./config.json');
// Webserver
server.listen(conf.port);
app.configure(function(){
app.use(express.static(__dirname + '/public'));
});
app.get('/', function (req, res) {
res.sendfile(__dirname + '/public/index.html');
});
// Websocket
io.sockets.on('connection', function (socket) {
//Here I want get the data
io.sockets.on('rasp_param', function (data){
console.log(data);
});
});
});
// Server Details
console.log('Ther server runs on http://127.0.0.1:' + conf.port + '/');
答案 0 :(得分:1)
您正在使用Python的HTTP PUT,但您正在使用nodejs端的websocket服务器进行监听。
要么让节点侦听HTTP POST(我使用POST而不是PUT):
app.post('/data', function (req, res) {
//do stuff with the data here
});
或在python方面有一个websocket客户端:
ws = yield from websockets.connect("ws://10.1.10.10")
ws.send(json.dumps({'param':'value'}))
持久的websocket连接可能是最佳选择。