ЛР2.Ч2 Використання WEB API та Web-сокетів
5. Використання WEB-сокетів
Ознайомтеся з принципами роботи WEB-сокетів (даються в лекційному матеріалі).
В даній частині лабораторної роботи WEB-сокети будуть використовуватися для наступних цілей:
- зв’язку між локальним (ПК) та віддаленим (FRED) Node-RED, тобто в якості подовжувача зв’язку між потоками
- зв’язку Node-RED з застосунками в Інтернет
- зв’язку Node-RED з застосунками на мобільних пристроях
При роботі з HTTP (у тому числі WEB-сокетами) FRED, як посередник, передає всі повідомлення з Інтернету на екземпляр Node-RED. Щоб відправити запит до конкретного екземпляру, FRED використовує ім'я користувача в заголовку для приватних вузлів введення API або URL для загальнодоступних вузлів вводу Websockets.
Для створення загальнодоступного серверного вузла Websocket, необхідно в конфігураційному вузлі Websocket в URL-адресі прослухування вказати префікс «/public/». Тоді можна буде отримати доступ до websocket в
wss: // {ім'я користувача} .fred.sensetecnic.com/api/public /{custom_endpoint_name}.
Наприклад, вхідний вузол websocket, налаштований на шлях /public /data, створений користувачем mike, буде доступний як
wss: //mike.fred.sensetecnic.com/api/public/data
Для того, щоб клієнт Websockets отримував доступ до захищених вузлів вводу Websocket у потоках, необхідно надати своє ім'я користувача та пароль, використовуючи базову аутентифікацію, або ключ API з вашими запитами. Щоб зробити запит до захищеного вузла вводу веб-сокету, ім'я користувача та ключ API повинні бути додані до заголовків запиту: x-auth-user та x-auth-key. В даній лабораторній роботі не будуть використовуватися захищені приватні з’єднання.
З деталями роботи з Веб-сокетами на платформі FRED, можна ознайомитися тут.
1. Створення серверного WEB-сокету в FRED.
В Node-RED на платформі FRED створіть вхідний серверний “WebSocket In” та з’єднайте його з вузлом “Debug” (рис.12)
рис.12.
Відкрийте Веб-інтерфейс Dashboard FRED, скопіюйте адресу, вона повинна мати вигляд:
https://account _name.fred.sensetecnic.com/api/ui/
де account _name – ім’я вашої реєстрації
2. Створення клієнтського WEB-сокету в локальному Node-RED.
Запустіть Node-RED на локальному ПК. Створіть новий потік, в ньому розмістіть два вузли – клієнтський “WebSocket out” та “Inject” (рис.13). Налаштуйте відповідно до вашого серверного сокету. Перевірте роботу з’єднання. Зробіть копію екрану потоку на FRED, на якій видно адресу вашого аккаунту і наявність з’єднання – зелений напис «connected». Добавте його до звіту.
рис.13.
3. Перевірка роботи сервісів WEB-сокету через онлайн утиліти.
Самостійно зробіть тестування клієнтського WEB-сокету в локальному Node-RED, під’єднавшись до wss://echo.websocket.org. Цей сервер передбачає ехо-відповіді на запити, тому для перевірки його роботи необхідно як вхідний так і вихідний клієнтські сокети.
Самостійно зробіть тестування створеного раніше серверного WEB-сокету на FRED через севіс https://www.websocket.org/echo.html