返回 导航

其他

hangge.com

边缘计算框架EdgeX Foundry使用详解6(将数据通过POST方式推送到服务器上)

作者:hangge | 2020-01-24 08:10
    EdgeX Foundry 支持 MQTTREST 这两种数据输出通道。前文中我介绍了如何将数据推送到 MQTT 服务器,这次接着介绍如何通过 HTTP POST 方式将数据推送到服务器。

六、将数据通过 POST 方式推送到服务器上

1,准备工作

(1)我先我们准备一个远程的 HTTP 服务器用于接受推送过来的数据。这里我用 php 实现,请求地址如下:

(2)里面内容很简单,就是将接收到的数据以追加的形式,不断的添加到 log.txt 文件中。
<?php
//通过输入端来获取数据
$body = file_get_contents('php://input');
//将数据写到文件中(追加的方式)
$file  = 'log.txt';//要写入文件的文件名(如果文件不存在,将会创建一个)
if($f  = file_put_contents($file, $body.PHP_EOL, FILE_APPEND)){
  echo "写入成功";
}

2,客户端注册

(1)要想让 EdgeX Foundry 能够将数据推送到服务器,我们就需要先将上面的服务器地址在 EdgeX 这边注册为一个输出客户端。
  • 请求地址(POST 方式):http://EdgeX-IP:48071/api/v1/registration

(2)请求内容如下,特别注意高亮部分:我们定义的远程服务器的地址、端口、路径、提交方式等,同时这里只推送随机数设备的数据:
{
	"name": "QuickStartExport2",
	"addressable": {
		"name": "EdgeXTestREST",
		"protocol": "http",
		"method": "POST",
		"address": "192.168.60.1",
		"port": 80,
		"path": "/rest.php"
	},
	"format": "JSON",
	"filter":{
        "deviceIdentifiers":["Random-Integer-Generator01"]
    },
	"enable": true,
	"destination": "REST_ENDPOINT"
}

(3)这里使用 Postman 来发送 Post 请求进行注册:

(4)注册后我们同样可以通过 GET 方式请求这个地址,查看当前所有已注册的客户端。从返回结果可以看出我们的 HTTP 服务器已经注册成功了(在它之前还有个系统默认注册的规则服务,这里就不展示了)。

3,观察测试

    经过上面注册以后,设备生成的随机数据就会经由 EdgeX Foundry 推送到 HTTP 服务器上。我们打开服务器上的 log.txt 文件可以看到接受到的数据如下:

附:查看或删除指定注册的客户

如何我们需要查看或者删除指定的已注册客户端(可以通过 name、或者 id),可以参考之前的文章:
评论

全部评论(0)

回到顶部