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.