Menu

Home

Maxim Kuznetsov

MQTT client library forMetaTrader

Simpifiest interface

class MQTT;

// чтобы не заставлять пользователя порождать ненужные ему классы
// позволим ему задавать колбеки :-)

// вот такая функция будет вызывать при поступлении сообщений от брокера
typedef int (*MQTT_OnMessage)(MQTT *,string topic,uchar &data[],int qos,int retain);
// такая при установке соединение
typedef int (*MQTT_OnConnect)(MQTT *);
// а такая при разрыве
typedef int (*MQTT_OnDisconnect)(MQTT *,int);

class MQTT {
public:
   // создать подключение к брокеру
   MQTT(string server="localhost",string persistentDir="");
   // задать собственные колбеки для событий
   int SetCallbacks(MQTT_OnMessage callback,MQTT_OnConnect on_connect,MQTT_OnDisconnect on_disconnect);
   // подписаться на темы
   int Subscribe(string topic);
   // опубликовать сообщение в теме
   int Publish(string topic,uchar &data[],int data_size,int qos=0,bool retain=false);
   // (для пущего удобства) опубликовать текстовое сообщение
   int Publish(string topic,string text,int qos=0,bool retain=false);
   // время от времени надо запускать Loop
   int Loop();

   ~MQTT();
protected:
   int id;  // рабочий идентификатор
   bool connected; // признак есть/нет соединение
   // кол-беки
   MQTT_OnMessage on_message;
   MQTT_OnConnect on_connect;
   MQTT_OnDisconnect on_disconnect;
};

The wiki uses Markdown syntax.

Project Members: