Os parceiros que utilizam as gateways de computação periférica da série EG deparam-se frequentemente com a necessidade de utilizar o websocket para enviar e receber mensagens. O WEBSOCKET é um protocolo sobre TCP que pode ajudar os utilizadores a obter informações por push, utilizando o WEBSOCKET para criar primeiro uma ligação e, em seguida, o cliente e o servidor poderão enviar dados a qualquer momento, e o servidor pode enviar ativamente os dados para o cliente sem que este envie constantemente pedidos, obtendo uma verdadeira comunicação bidirecional. Este protocolo é frequentemente utilizado na monitorização de dados em tempo real na Internet das Coisas (IoT), o que permite que as aplicações IoT sejam mais interactivas e em tempo real.
Hoje, vamos aprender como o EG Series Edge Computing Gateway utiliza o websocket para enviar e receber mensagens! Antes de começarmos, temos de nos certificar de que efectuámos o trabalho preparatório, incluindo a ligação e a configuração do gateway de bordae familiarizarmo-nos com o Node-RED.
Como utilizar o websocket para enviar e receber mensagens?
A função WEBSOCKET divide-se em dois nós de acordo com a direção do fluxo de dados: WEBSOCKET EM indica os dados recebidos pelo gateway e WEBSOCKET OUT indica os dados enviados pela porta de ligação.
Em segundo lugar, a porta de ligação em modo de escuta actua como servidor WEBSOCKET e a porta de ligação em modo de conexão actua como cliente WEBSOCKET.
Entrada
msg.payload
# Por defeito, o payload da msg.payload será enviado através do WEBSOCKET definido. Se a mensagem que chega a este nó for proveniente do nó WEBSOCKET IN, a mensagem será enviada de volta para o cliente original. Caso contrário, a mensagem será transmitida a todos os clientes.
Saída
Funções
1. Escuta
No modo de escuta, o WEBSOCKET funciona em modo servidor, ele criará o servidor WEBSOCKET de acordo com o caminho especificado.
2. Ligação
No modo de ligação, o WEBSOCKET funciona em modo de cliente e inicia uma ligação WEBSOCKET ao URL definido.
Exemplo
1. Constrói o Servidor para ligar o Cliente.
[{"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":"调试","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": "调试", "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. Constrói um servidor para enviar e receber informações.
[{"id":"9c86d286f135539e","type":"group","z":"b5e5e7b9b71494ea","name":"服务端-数据原路返回","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":"函数计算 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":"调试 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"}]
Espero que, através deste artigo, os leitores possam ficar esclarecidos sobre como utilizar o websocket para enviar e receber mensagens nas Edge Gateways da série EG.
A IOTRouter Technology Co., Ltd. combina a infraestrutura tradicional da indústria com novas tecnologias, como IoT, computação de ponta, IA, e fornece o gateway de ponta, centro de dados IOT, computador industrial, IO remoto, caixa de ponta de IA e outros produtos e soluções para os integradores de transformação digital da indústria.