Оглавление
ToggleПартнеры, использующие шлюзы периферийных вычислений серии EG, часто сталкиваются с необходимостью использовать WebSocket для отправки и получения сообщений. WEBSOCKET — это протокол на основе TCP, который позволяет пользователям осуществлять push-передачу информации. Для использования WEBSOCKET сначала необходимо установить соединение, после чего клиент и сервер смогут обмениваться данными в любое время, а сервер может активно отправлять данные клиенту без необходимости постоянной отправки запросов со стороны клиента, что обеспечивает настоящую двунаправленную связь. Этот протокол часто используется для мониторинга данных в режиме реального времени в Интернете вещей (IoT), что позволяет приложениям IoT быть более интерактивными и работать в режиме реального времени.
Сегодня давайте узнаем, как шлюз периферийных вычислений серии EG использует WebSocket для отправки и получения сообщений! Прежде чем приступить к работе, нам нужно убедиться, что мы выполнили все подготовительные работы, включая подключение и настройку пограничный шлюз, а также познакомиться с Node-RED.
Как использовать WebSocket для отправки и получения сообщений?
Функция WEBSOCKET подразделяется на два узла в соответствии с направлением потока данных: WEBSOCKET IN обозначает данные, полученные шлюзом, и ВЫХОД WEBSOCKET обозначает данные, отправленные шлюзом.
Во-вторых, шлюз в режиме прослушивания выступает в роли сервера WEBSOCKET, а шлюз в режиме подключения — в роли клиента WEBSOCKET.
Вход
msg.payload
# По умолчанию msg.payload будет отправлено через настроенный WEBSOCKET. Если сообщение, поступающее на этот узел, пришло с узла WEBSOCKET IN, оно будет отправлено обратно исходному клиенту. В противном случае сообщение будет разослано всем клиентам.
Выход
msg.payload
# По умолчанию данные, полученные через WEBSOCKET, находятся в поле msg.payload
Функции
1. Аудирование
Режим прослушивания, в котором работает WEBSOCKET режим сервера, при этом будет создан сервер WEBSOCKET по указанному пути.
2. Подключение
В режиме подключения WEBSOCKET работает в режиме клиента и инициирует соединение WEBSOCKET с указанным URL-адресом.
Пример
1. Создает сервер для подключения клиента.

[{"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","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. Создает сервер для отправки и получения информации.

[{"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"}]
На этом сегодня всё. В любом случае, я надеюсь, что благодаря этой статье читатели смогут понять, как использовать WebSocket для отправки и получения сообщений на пограничных шлюзах серии EG.
Компания «IOTRouter Technology Co., Ltd.» объединяет традиционную отраслевую инфраструктуру с новыми технологиями, такими как Интернет вещей (IoT), пограничные вычисления и искусственный интеллект (ИИ), и предоставляет интеграторам, занимающимся цифровой трансформацией промышленности, такие продукты и решения, как пограничные шлюзы, центры обработки данных для IoT, промышленные компьютеры, устройства удаленного ввода-вывода, пограничные устройства на базе ИИ и другие.



