ЛР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