MQTT через веб-сокет в c - PullRequest
0 голосов
/ 23 мая 2018

Я реализовал mqtt, используя tcp socket для подключения к серверу на моей машине с mosquitto broker.Я полностью понял протокол mqtt и его формат кадра.Я хочу опубликовать свои данные через веб-сервер, который поддерживает mqtt через веб-сокет.

Как я могу начать с этой вещи?

Мне не совсем понятна концепция websocket
Могу ли я реализовать websocket с помощью tcp или есть какой-либо другой метод.Нужно ли использовать http для реализации mqtt через веб-сокет, чтобы отправлять данные через веб-сервер?
Поскольку http и mqtt используют разные методы для отправки или получения данных.

Я не хочу использовать готовые библиотекитакие как пахо.Я совершенно новичок в этом программировании сокетов. Любая помощь или руководство будет с благодарностью

1 Ответ

0 голосов
/ 23 мая 2018

Веб-сокеты являются расширением протокола HTTP, вам нужно использовать правильно отформатированный HTTP-запрос для установки нового подключения веб-сокета.

После настройки соединения его можно использовать для отправки точно такого же двоичного MQTTпакеты, которые вы отправляете по существующему TCP-соединению.

Я предлагаю вам взглянуть на использование существующей библиотеки, например libwebsockets, для управления настройкой соединения Websocket, тогда вы должны иметь возможность связать существующий код, чтобы просто использовать websocketдескриптор вместо дескриптора сокета.

Если вы ДЕЙСТВИТЕЛЬНО не хотите использовать библиотеку, вам нужно начать с чтения Websocket RFC https://tools.ietf.org/html/rfc6455

...