Работаю с KasperskyOS Community Edition 1.4, пытаюсь использовать IPC-интерфейс kl.MosquittoBroker для взаимодействия внутреннего процесса с брокером вместо TCP loopback + libmosquitto.
Документации по использованию mosquitto-брокера как сущности внутри KasperskyOS-решения не нашёл — ни в официальной документации KCE 1.4, ни в примерах SDK. Запустить брокер удалось самостоятельно, через анализ файлов в sysroot: kl/Mosquitto.edl, kl/MosquittoBroker.idl.h, kl/MosquittoCtrl.idl.h, lib/cmake/mosquitto/entityTargets.cmake, mosquittoConfig.cmake, а также бинаря bin/mosquitto.
Что удалось:
запустить брокер внутри решения
подключить внешние MQTT-клиенты по TCP 1883 + libmosquitto — всё работает корректно
вызвать MqttConnect через IPC — возвращает clientId и EOk
Проблема: MqttSend возвращает EPacketInvalid (-3) при любых данных в packet.
Что пробовал передавать в MqttPacket:
Сырой MQTT PUBLISH-пакет (тот же, что брокер корректно принимает по TCP, "подсмотрел" данный пакет через логирование при TCP-взаимодействии)
Просто payload без заголовков
Сформированные MQTT-пакеты при помощи библиотеки Eclipse Paho MQTT C/C++ client for Embedded platforms
Нигде в документации KCE 1.4 не нашёл описания ожидаемого формата буфера MqttPacket. Подскажите, пожалуйста:
что именно ожидает брокер в буфере packet при вызове MqttSend?
есть ли вспомогательный API или пример использования IPC-интерфейса kl.MosquittoBroker?
Featured Replies
Please sign in to comment
You will be able to leave a comment after signing in
Добрый день.
Работаю с KasperskyOS Community Edition 1.4, пытаюсь использовать IPC-интерфейс
kl.MosquittoBrokerдля взаимодействия внутреннего процесса с брокером вместо TCP loopback + libmosquitto.Документации по использованию
mosquitto-брокера как сущностивнутри KasperskyOS-решения не нашёл — ни в официальной документации KCE 1.4, ни в примерах SDK. Запустить брокер удалось самостоятельно, через анализ файлов в sysroot:kl/Mosquitto.edl,kl/MosquittoBroker.idl.h,kl/MosquittoCtrl.idl.h,lib/cmake/mosquitto/entityTargets.cmake,mosquittoConfig.cmake, а также бинаряbin/mosquitto.Что удалось:
брокервнутри решенияMqttConnectчерез IPC — возвращаетclientIdиEOkПроблема:
MqttSendвозвращаетEPacketInvalid(-3) при любых данных вpacket.Что пробовал передавать в
MqttPacket:Нигде в документации KCE 1.4 не нашёл описания ожидаемого формата буфера
MqttPacket. Подскажите, пожалуйста:packetпри вызовеMqttSend?kl.MosquittoBroker?