新聞中心
PRESS CENTEREG8200系列邊緣計(jì)算網(wǎng)關(guān)支持同時(shí)作為HTTP服務(wù)端和HTTP客戶端,且兩者獨(dú)立互不影響。本篇主要介紹HTTP服務(wù)端模式,主要分為兩個(gè)節(jié)點(diǎn):HTTP監(jiān)聽、HTTP響應(yīng)。
HTTP監(jiān)聽節(jié)點(diǎn)創(chuàng)建HTTP服務(wù)器用于接收HTTP請(qǐng)求,HTTP響應(yīng)節(jié)點(diǎn)負(fù)責(zé)響應(yīng)請(qǐng)求。
輸出(HTTP監(jiān)聽) |
msg.payload #HTTP請(qǐng)求正文 msg.req #HTTP請(qǐng)求對(duì)象。該對(duì)象包含有關(guān)請(qǐng)求信息的多個(gè)屬性 # body - 傳入請(qǐng)求的正文,格式將取決于請(qǐng)求 # headers - 包含HTTP請(qǐng)求標(biāo)頭的對(duì)象 # query - 包含任何查詢字符串參數(shù)的對(duì)象 # params - 包含任何路由參數(shù)的對(duì)象 # cookies - 包含請(qǐng)求cookie的對(duì)象 # files - 如果節(jié)點(diǎn)啟用了文件上傳,則為包含了上傳的文件的對(duì)象 msg.res #HTTP響應(yīng)對(duì)象,該屬性必須保留在傳遞給響應(yīng)節(jié)點(diǎn)的消息上 |
輸入(HTTP響應(yīng)) |
msg.payload #響應(yīng)的正文 msg.statusCode #如果設(shè)置,則用作響應(yīng)狀態(tài)代碼。默認(rèn)值:200 msg.headers #如果設(shè)置,則提供HTTP頭以包含在響應(yīng)中 msg.cookies #如果設(shè)置,則可用于設(shè)置或刪除cookie |
1. GET請(qǐng)求數(shù)據(jù)
以下演示采集一個(gè)Modbus TCP從機(jī)數(shù)據(jù),網(wǎng)關(guān)做為HTTP服務(wù)端,用戶通過(guò)瀏覽器GET請(qǐng)求方式獲取采集的數(shù)據(jù)。
首先配置HTTP監(jiān)聽請(qǐng)求方式GET,配置上URL,配置上Modbus讀節(jié)點(diǎn)的采集參數(shù),再連接上HTTP響應(yīng)??梢愿鶕?jù)日志看到Modbus讀節(jié)點(diǎn)返回的內(nèi)容是JSON對(duì)象。
GET請(qǐng)求 |
[{"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":"數(shù)據(jù)1","Address":"0","Type":"1","Tdata":""},{"Key":"數(shù)據(jù)2","Address":"1","Type":"1","Tdata":""},{"Key":"數(shù)據(jù)3","Address":"2","Type":"1","Tdata":""},{"Key":"數(shù)據(jù)4","Address":"3","Type":"1","Tdata":""}],"x":250,"y":260,"wires":[["bd5a08217d6c0402","87227e5cde22ecb4"]]},{"id":"87227e5cde22ecb4","type":"debug","z":"409d1e89497faaa4","name":"打印Modbus數(shù)據(jù)","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請(qǐng)求攜帶響應(yīng)res屬性
數(shù)據(jù)傳輸時(shí),必須要攜帶HTTP監(jiān)聽節(jié)點(diǎn)輸出的msg.res屬性,才能成功傳遞給HTTP響應(yīng)節(jié)點(diǎn)。
在有的節(jié)點(diǎn)或者流程里,數(shù)據(jù)傳輸過(guò)程中HTTP監(jiān)聽輸出的內(nèi)容msg對(duì)象被覆蓋,后續(xù)數(shù)據(jù)中不存在msg.res這個(gè)對(duì)象及其內(nèi)容,導(dǎo)致數(shù)據(jù)沒(méi)法成功響應(yīng)??梢詫TTP監(jiān)聽的msg.res對(duì)象數(shù)據(jù)緩存在全局變量中。后續(xù)數(shù)據(jù)傳輸獲取這個(gè)全局變量值給msg.res一起傳輸即可。
GET請(qǐng)求攜帶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":"存儲(chǔ)res屬性數(shù)據(jù)","func":"global.set(\"res\",msg.res) //設(shè)置全局變量\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":120,"y":260,"wires":[[]]},{"id":"d66ca0092ec4aebf","type":"function","z":"409d1e89497faaa4","name":"模擬數(shù)據(jù)","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加密
請(qǐng)求地址填寫:網(wǎng)關(guān)IP“+”:1880“+”URL,案例地址為192.168.0.58:1880/test