新聞中心
PRESS CENTER使用EG系列邊緣計算網(wǎng)關(guān)的小伙伴,常常會遇到需要使用websocket來收發(fā)信息的情況,websocket是一種在TCP上的協(xié)議,可以幫助用戶實現(xiàn)信息推送,使用websocket需要先創(chuàng)建連接,然后客戶端與服務(wù)器就能隨時發(fā)送數(shù)據(jù)了,服務(wù)器可以主動將數(shù)據(jù)推送給客戶端而不需要客戶端不斷發(fā)送請求,實現(xiàn)真正的雙向通信。在物聯(lián)網(wǎng)的實時數(shù)據(jù)監(jiān)控中,就常常用到這個協(xié)議,它讓物聯(lián)網(wǎng)應(yīng)用可以更加具有交互性和實時性。
今天,我們一起來學習一下,EG系列邊緣計算網(wǎng)關(guān)是如何使用這個協(xié)議實現(xiàn)信息收發(fā)的吧!在正式開始前,我們需要確保已經(jīng)做好了準備工作,包括邊緣網(wǎng)關(guān)的連接與配置,并且熟悉使用node-red進行流程編輯等,具體可參考:快速入門。然后,讓我們一起進入今天的正題。
WEBSOCKET功能根據(jù)數(shù)據(jù)流向分為兩個節(jié)點,分別是:WEBSOCKET IN表示網(wǎng)關(guān)收到的數(shù)據(jù),WEBSOCKET OUT表示網(wǎng)關(guān)發(fā)送的數(shù)據(jù)。
監(jiān)聽模式網(wǎng)關(guān)作為WEBSOCKET服務(wù)端,連接模式網(wǎng)關(guān)作為WEBSOCKET客戶端。
msg.payload #默認情況下,msg.payload將通過設(shè)置好的WEBSOCKET發(fā)送。如果到達此節(jié)點的消息來自WEBSOCKET IN節(jié)點,則該消息將發(fā)送回原客戶端。否則,該消息將廣播給所有客戶端。
msg.payload #默認情況下,從WEBSOCKET接收的數(shù)據(jù)存在msg.payload中
1. 監(jiān)聽
監(jiān)聽模式,WEBSOCKET工作在服務(wù)器模式,會根據(jù)指定的路徑創(chuàng)建WEBSOCKET服務(wù)器。
2. 連接
連接模式,WEBSOCKET工作在客戶端模式,會向設(shè)定的URL發(fā)起WEBSOCKET連接。
1. WEBSOCKET自建Server和Client互連
[{"id":"13410716.69c9d9","type":"websocket in","z":"b5e5e7b9b71494ea","name":"","server":"89db22b6.9aa36","client":"","x":500,"y":380,"wires":[["c2541f10.59544"]]},{"id":"c2541f10.59544","type":"debug","z":"b5e5e7b9b71494ea","name":"調(diào)試","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":380,"wires":[]},{"id":"6788839e.04576c","type":"inject","z":"b5e5e7b9b71494ea","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"hello world","payloadType":"str","x":340,"y":320,"wires":[["438c232a.06c2cc"]]},{"id":"438c232a.06c2cc","type":"websocket out","z":"b5e5e7b9b71494ea","name":"","server":"","client":"63620788.bda128","x":560,"y":320,"wires":[]},{"id":"c88f97a9.4410f8","type":"comment","z":"b5e5e7b9b71494ea","name":"WEBSOCKET自建Server和Client互連","info":"","x":410,"y":260,"wires":[]},{"id":"759c0b2b.8a0484","type":"websocket in","z":"b5e5e7b9b71494ea","name":"","server":"","client":"1d80bd86.93f372","x":560,"y":500,"wires":[["1f7a7454.cb65ec"]]},{"id":"1f7a7454.cb65ec","type":"debug","z":"b5e5e7b9b71494ea","name":"調(diào)試","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":500,"wires":[]},{"id":"aa2fe781.e92b28","type":"inject","z":"b5e5e7b9b71494ea","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"goodbye","payloadType":"str","x":340,"y":440,"wires":[["f8bdbc9b.d82dd"]]},{"id":"f8bdbc9b.d82dd","type":"websocket out","z":"b5e5e7b9b71494ea","name":"","server":"40bd4295.3e4ecc","client":"","x":500,"y":440,"wires":[]},{"id":"89db22b6.9aa36","type":"websocket-listener","path":"/ws1","wholemsg":"false"},{"id":"63620788.bda128","type":"websocket-client","path":"ws://localhost:1880/ws1","tls":"","wholemsg":"false","hb":"0"},{"id":"1d80bd86.93f372","type":"websocket-client","path":"ws://localhost:1880/ws2","tls":"","wholemsg":"false"},{"id":"40bd4295.3e4ecc","type":"websocket-listener","path":"/ws2","wholemsg":"false"}]
2. WEBSOCKET自建Server實現(xiàn)收到什么回什么
[{"id":"9c86d286f135539e","type":"group","z":"b5e5e7b9b71494ea","name":"服務(wù)端-數(shù)據(jù)原路返回","style":{"label":true},"nodes":["4cb19ae6d5bc97bb","06f56bbc8337db06","587f22bd305d76ce"],"x":314,"y":219,"w":492,"h":82},{"id":"4cb19ae6d5bc97bb","type":"websocket in","z":"b5e5e7b9b71494ea","g":"9c86d286f135539e","name":"","server":"89db22b6.9aa36","client":"","x":400,"y":260,"wires":[["06f56bbc8337db06"]]},{"id":"06f56bbc8337db06","type":"function","z":"b5e5e7b9b71494ea","g":"9c86d286f135539e","name":"函數(shù)計算 1","func":"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":260,"wires":[["587f22bd305d76ce"]]},{"id":"587f22bd305d76ce","type":"websocket out","z":"b5e5e7b9b71494ea","g":"9c86d286f135539e","name":"","server":"89db22b6.9aa36","client":"","x":720,"y":260,"wires":[]},{"id":"89db22b6.9aa36","type":"websocket-listener","path":"/ws1","wholemsg":"false"},{"id":"d07e89f720b33486","type":"group","z":"b5e5e7b9b71494ea","name":"客戶端","style":{"label":true},"nodes":["1af13bea201b6062","c327cadb0afa0aef","33bf2db84056de7c","cc47f6b7286a57d1"],"x":334,"y":399,"w":472,"h":142},{"id":"1af13bea201b6062","type":"websocket out","z":"b5e5e7b9b71494ea","g":"d07e89f720b33486","name":"","server":"","client":"63620788.bda128","x":660,"y":440,"wires":[]},{"id":"c327cadb0afa0aef","type":"inject","z":"b5e5e7b9b71494ea","g":"d07e89f720b33486","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":430,"y":440,"wires":[["1af13bea201b6062"]]},{"id":"33bf2db84056de7c","type":"websocket in","z":"b5e5e7b9b71494ea","g":"d07e89f720b33486","name":"","server":"","client":"63620788.bda128","x":480,"y":500,"wires":[["cc47f6b7286a57d1"]]},{"id":"cc47f6b7286a57d1","type":"debug","z":"b5e5e7b9b71494ea","g":"d07e89f720b33486","name":"調(diào)試 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":710,"y":500,"wires":[]},{"id":"63620788.bda128","type":"websocket-client","path":"ws://localhost:1880/ws1","tls":"","wholemsg":"false","hb":"0"}]
以上就是今天的分享,希望通過本文,讀者能了解邊緣計算網(wǎng)關(guān)是如何通過websocket協(xié)議節(jié)點進行信息收發(fā)的,如果有不清楚的地方歡迎隨時聯(lián)系我們!
縱橫智控將傳統(tǒng)行業(yè)基礎(chǔ)設(shè)施與物聯(lián)網(wǎng)、邊緣計算、AI等新技術(shù)相結(jié)合,為行業(yè)數(shù)字化轉(zhuǎn)型集成商提供邊緣網(wǎng)關(guān)、IOT數(shù)據(jù)中臺、HMI、遠程IO、AI邊緣盒子等產(chǎn)品及解決方案,提質(zhì)增效、優(yōu)化流程,推動行業(yè)數(shù)字化轉(zhuǎn)型。