新闻中心

PRESS CENTER 纵横智控
你的位置: 首页 新闻 技术应用
纵横智控

EG系列边缘计算网关教程-HTTP监听/响应

2025-02-25 11:01:09 阅读: 发布人:纵横智控

原文:(HTTP监听/响应)

概述

EG8200系列边缘计算网关支持同时作为HTTP服务端和HTTP客户端,且两者独立互不影响。本篇主要介绍HTTP服务端模式,主要分为两个节点:HTTP监听、HTTP响应。

HTTP监听节点创建HTTP服务器用于接收HTTP请求,HTTP响应节点负责响应请求。

输出

输出(HTTP监听)

msg.payload

#HTTP请求正文

msg.req

#HTTP请求对象。该对象包含有关请求信息的多个属性

# body    - 传入请求的正文,格式将取决于请求

# headers - 包含HTTP请求标头的对象

# query   - 包含任何查询字符串参数的对象

# params  - 包含任何路由参数的对象

# cookies - 包含请求cookie的对象

# files   - 如果节点启用了文件上传,则为包含了上传的文件的对象

msg.res

#HTTP响应对象,该属性必须保留在传递给响应节点的消息上

输入

输入(HTTP响应)

msg.payload

#响应的正文

msg.statusCode

#如果设置,则用作响应状态代码。默认值:200

msg.headers

#如果设置,则提供HTTP头以包含在响应中

msg.cookies

#如果设置,则可用于设置或删除cookie

示例

1. GET请求数据

以下演示采集一个Modbus TCP从机数据,网关做为HTTP服务端,用户通过浏览器GET请求方式获取采集的数据。

首先配置HTTP监听请求方式GET,配置上URL,配置上Modbus读节点的采集参数,再连接上HTTP响应。可以根据日志看到Modbus读节点返回的内容是JSON对象。

1. GET请求数据

GET请求
[{"id":"6daf7fe1c05731f7","type":"http in","z":"409d1e89497faaa4","name":"","url":"/test","method":"get","upload":false,"swaggerDoc":"","x":80,"y":260,"wires":[["803a50e0dc52f4fb"]]},{"id":"bd5a08217d6c0402","type":"http response","z":"409d1e89497faaa4","name":"","statusCode":"","headers":{},"x":450,"y":260,"wires":[]},{"id":"803a50e0dc52f4fb","type":"modbusRead","z":"409d1e89497faaa4","name":"","uid":"1","dataType":"3","len":"120","modbus":"aeb5401700b85127","columns":[{"Key":"数据1","Address":"0","Type":"1","Tdata":""},{"Key":"数据2","Address":"1","Type":"1","Tdata":""},{"Key":"数据3","Address":"2","Type":"1","Tdata":""},{"Key":"数据4","Address":"3","Type":"1","Tdata":""}],"x":250,"y":260,"wires":[["bd5a08217d6c0402","87227e5cde22ecb4"]]},{"id":"87227e5cde22ecb4","type":"debug","z":"409d1e89497faaa4","name":"打印Modbus数据","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":490,"y":220,"wires":[]},{"id":"aeb5401700b85127","type":"modbus config","name":"","model":"1","host":"192.168.0.59","port":"502","serialport":"/dev/ttyAS3","baudrate":"9600","databits":"8","stopbits":"1","parity":"none","timeout":"50","reqtimeout":"1000"}]


2. GET请求携带响应res属性

数据传输时,必须要携带HTTP监听节点输出的msg.res属性,才能成功传递给HTTP响应节点。

在有的节点或者流程里,数据传输过程中HTTP监听输出的内容msg对象被覆盖,后续数据中不存在msg.res这个对象及其内容,导致数据没法成功响应。可以将HTTP监听的msg.res对象数据缓存在全局变量中。后续数据传输获取这个全局变量值给msg.res一起传输即可。

2. GET请求携带响应res属性

GET请求携带res
[{"id":"deeaeb55a7193dd6","type":"http in","z":"409d1e89497faaa4","name":"","url":"/test","method":"get","upload":false,"swaggerDoc":"","x":100,"y":300,"wires":[["994c95fa1dbc3020","d66ca0092ec4aebf"]]},{"id":"afdbe4f6f3e855d3","type":"http response","z":"409d1e89497faaa4","name":"","statusCode":"","headers":{},"x":450,"y":300,"wires":[]},{"id":"994c95fa1dbc3020","type":"function","z":"409d1e89497faaa4","name":"存储res属性数据","func":"global.set(\"res\",msg.res)   //设置全局变量\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":120,"y":260,"wires":[[]]},{"id":"d66ca0092ec4aebf","type":"function","z":"409d1e89497faaa4","name":"模拟数据","func":"msg = {}\nmsg.payload ={\n    A:12,\n    B:13,\n    C:14,\n    D:15,\n    Time:new Date()\n}\nmsg.res = global.get(\"res\") //获取全局变量\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":280,"y":300,"wires":[["a4fbb36c3cbc36ec","afdbe4f6f3e855d3"]]},{"id":"a4fbb36c3cbc36ec","type":"debug","z":"409d1e89497faaa4","name":"打印模拟输出值","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":480,"y":260,"wires":[]}]

注意

支持SSL/TLS加密

请求地址填写:网关IP“+”:1880“+”URL,案例地址为192.168.0.58:1880/test

热门产品