Mosquitto broker version

При том, что исправления касались и брокера. Если вместо WB использовать заглушку в виде брокера 1.4.8 на localhost, все значительно лучше. Так что пока не ясно, где основная проблема.
Так что там насчет 1.4.8?

его там нет, собирать сложно, под WB ещё и есть патчи. Когда будет время - выложу.
Если без патчей, то оно должно собираться из дебиановских исходников через wbdev cdeb.

ну нет, так нет.

а что за патчи?

а почему именно так?

патчи: опция для авторизации без пароля с локального хоста, бинд на локальный интерфейс для вебсокетов

а зачем вам нужен вебсокет на localhost?

чтобы работало вот это: http://contactless.ru/wiki/index.php/Защита_паролем

Почему mosquitto? Потому что paho в моем случае работает значительно медленнее. Первое подключение (MQTTAsync.c) идет с таймаутом 10 мс, последующие - через 1000 мс. При невозможности выделения потока попытки повторяются через 100 мс. Быстрее получается при динамическом создании асинхронного клиента перед каждым подключением. В этом случае средний таймаут получается 140-260 мс. И это под линуксом. Поэтому забил на эту библиотеку.

Хм, а что у вас за такая задача, что нужно часто подключаться к брокеру?

Задача, как задача. Удаленный мониторинг и управление исполнительными устройствами. Устройства подключены к различным контроллерам. Контроллеров несколько и разных (от WB до Moxa) с разными интерфейсами (mqtt, modbus rtu, modbus tcp). Все это хозяйство подключено к серверу (доступа данных или серверу приложений - еще не придумал название:). Многопользовательский доступ через интернет.

понятно, спасибо.
Я только не очень понимаю, зачем от брокера постоянно отключаться и подключаться заново? Как я понял, именно в этом месте случаются тормоза?

Это прототип. Чтобы не устраивать зоопарк, со всеми типами контроллеров работаю однотипно: клиент подключается к серверу, отправляет запрос, получает ответ и отключается. С интерфейсом modbus это самое простое решение, и то пришлось очередь организовывать. С mqtt, конечно, можно поступить иначе, сейчас над этим работаю.

вы избавились от зоопарка но приобретёте себе еще больший геморрой… первую проблему вы уже познали :). Работать с протоколом лучше так как он сам это предусматривает. Создайте лучше абстракцию в виде драйвера протокола и реализуйте специфичные каждому конкретному протоколу вещи в нем и будет вам счастье :slight_smile:

Хм… это не первая. Да и не проблема вовсе. Целевая платформа - linux. Там все отлично.

Проверил клиентскую библиотеку 1.4.9 с брокером 1.4.8 под Windows. Все работает отлично, как и в линуксе.
Так что, Евгений, если обновите mosquitto в WB5, это будет неплохо. Хотя и не горит.

Вышла версия 1.4.9.

Вроде и с предыдущей всё неплохо.

Сергей, если вам это для работы нужно, то мы можем собрать вам пакет в рамках платной техподдержки. Просто задача у вас уж очень специфическая.

Спасибо, поговорю с руководством. Но на линуксе проблем нет, могут и отказаться.

Вышла версия 1.5.7.
После версии 1.4.7 сделано много исправлений дефектов и утечек памяти, также была повышена производительность работы через websockets в 1.4.13.

Пора обновиться? :slight_smile: