欢迎投稿

今日深度:

ubuntu MQTT 物联网协议,ubuntumqtt

ubuntu MQTT 物联网协议,ubuntumqtt


一.基本函数

1.keepalive=10设置对话断线后存活时间为10秒

mosquitto_connect(mosq_sub, mqtt_host, mqtt_port, keepalive)

2.客户端连接成功执行这个回调函数

void on_connect_wrapper(struct mosquitto *mosq, void *userdata, int rc)

3.客户端订阅成功

void on_subscribe_wrapper(struct mosquitto *mosq, void *userdata, int mid, int qos_count, const int *granted_qos)

3.断线10秒后,客户端离线超时执行这个回调函数

void disconnect_wrapper(struct mosquitto *mosq, void *userdata, int rc)

二.函数测试

1.启动mqtt应用程序

当客户端连接成功会执行on_connect_wrapper

当客户端订阅成功会执行on_subscribe_wrapper

2.模拟MQTT断线情况,将虚拟机的网络断开,超多10秒后会执行  disconnect_wrapper回调函数

 

3. 当网络恢复后,MQTT会从新建立连接,连接成功,会执行on_connect_wrapper,要注意要将之前的topic重新订阅,否则接受不到消息。重新订阅成功也会执行on_subscribe_wrapper这个回调函数

void on_connect_wrapper(struct mosquitto *mosq, void *userdata, int rc){
    bool clean_session = true;
    int ret = 0;
     int qos = 0;
      int mid = 2;
    printf("on_connect_wrapper------------------\n");
    // resub
    if(flag_disconnect == 1){
        printf("reconnect_wrapper------------------\n");
        mosquitto_subscribe(mosq_sub, &mid,"/aliyun/vpn/#", qos);
        printf("resub OK\n");
        }
    flag_disconnect = 0;
    


 

www.htsjk.Com true http://www.htsjk.com/shujukunews/10217.html NewsArticle ubuntu MQTT 物联网协议,ubuntumqtt 一.基本函数 1.keepalive=10设置对话断线后存活时间为10秒 mosquitto_connect(mosq_sub, mqtt_host, mqtt_port, keepalive) 2.客户端连接成功执行这个回调函数 void on_connect_w...
相关文章
    暂无相关文章
评论暂时关闭