Raspberry Pi снискали огромную популярность по всему миру. Однако многие из любителей-разработчиков сталкиваются с проблемой доступа к устройству из интернета. Как правило приходится необходимо колдовать с DDNS или докупать статический IP адрес. Оба варианта предполагают настройка роутера, что не для всех и не всегда доступно. Кроме того – откртытие прямого доступа к устройству из интрента несет в себе определнные риски безопасности.
Крайне распространенным способом решения этой проблемы является использование промежуточного сервера, через который сервер и клиент подключаются друг к другую.
Схема крайне широко используется в различных пакетах удаленного доступа: VNCViewer, AmmyyAdmin и т.д.
Вариант 1-DDNS
![Управление Raspberry через websockets - 1 image](https://www.pvsm.ru/images/2019/04/10/upravlenie-Raspberry-cherez-websockets.png)
Вариант 2 – статический IP адрес
![Управление Raspberry через websockets - 2 image](https://www.pvsm.ru/images/2019/04/10/upravlenie-Raspberry-cherez-websockets-2.png)
Вариант 3 – использование промежуточного сервера
![Управление Raspberry через websockets - 3 image](https://www.pvsm.ru/images/2019/04/10/upravlenie-Raspberry-cherez-websockets-3.png)
Эту схему подключения можно реализовать через протокол MQTT over Websockets, но мне было инетесно реализовать что-то значительно более простое, JSON-ориентированое, расширяемое, без ограничений протокола на размер сообщения и с более очевидной моделью безопасности.
Читать полностью »