Разница между портом и слушателем в MQTT
Я установил клиент Mosquitto для MQTT на моей локальной машине. У меня есть ниже конфигурации:
listener 1883
protocol mqtt
listener 9001
protocol websockets
В чем разница между работой клиента на mqtt и websockets. Также какая разница, если я меняю слушателя на порт?
2 ответа
Это означает, что он будет прослушивать 1883 и ожидать MQTT-пакеты, а также прослушивать:9001 и ожидать HTTP/ протокол Websocket.
Проводной протокол - это язык, на котором говорят программы. Иногда уместно говорить: "Йо-суп, TJ", иногда вы должны сказать "Доброе утро, мистер Марвел". То же самое в связи с сервером. Мы все еще изобретаем больше языков.
MQTT http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html
- установить TCP-соединение
- теперь мы говорим MQTT
- отправлять пакеты MQTT в соответствии со стандартом (публикация / суб / отмена) или отключаться
Протокол веб-сокета, https://tools.ietf.org/html/rfc6455
- установить TCP-соединение
- отправить HTTP-запрос с
Upgrade: websocket
заголовок и другая подготовка - Кроме
101 Switching Protocols
ответ - Теперь мы говорим о Websocket, любая сторона может отправлять сообщения в соответствии со стандартом
Порт - это число в диапазоне от 1 до 65535. IP-адрес + пара портов определяют конечную точку связи. В некотором смысле порт расширяет пространство IP-адресов, чтобы указать, какой программе на другом компьютере вы собираетесь отправлять свои данные. Например, HTTP-серверы обычно слушают порт 80.
Чтобы сделать жизнь более интересной, иногда вы выбираете случайный порт для прослушивания, потому что
- сообщество еще не достигло консенсуса о том, какое из них хорошо для нового приложения
- Ваш сетевой администратор разрешает только определенные порты
- попытаться убедить себя, что нестандартный порт повышает безопасность
- известный порт уже занят другим приложением
- просто хочется повеселиться, сбивая с толку других людей
Клиент Mqtt на веб-сокете (клиент JavaScript Eclipse Paho) может быть запущен из веб-браузера, как в примере ( 1). Обычные клиенты mqtt работают поверх TCP и, следовательно, не могут использоваться напрямую из веб-браузера. Веб-сокеты работают поверх HTTP и могут использоваться непосредственно из веб-браузеров. Если вы пытаетесь использовать москитного брокера, его необходимо скомпилировать с помощью поддержки websocket ( 2)
Порты против Слушателей, см. Файл mosquitto.conf ( 3).
- Порт - по умолчанию используется слушатель москитного брокера.
- Прослушиватель - используя эту переменную несколько раз, mosquitto может прослушивать более одного порта. Слушатели также позволяют настройки, такие как максимальное количество подключений на слушателя, протокол и т. Д.