mosquitto use mqtt in a strange phenomenon

    Initial use mqtt, then went to a library libmosquitto.so.1, then looked nod file mosquitto.h, looking at the example. Then ran up

 /* libmosquitto lib init */
    mosquitto_lib_init();
    /* create a mosquitto client */
    mosq = mosquitto_new(device_id, false, mqqtcdev);
    if(!mosq)
    {
        printf("create client failed..\n");
        mosquitto_lib_cleanup();
        return -1;
    }
    
    /* set the username and password */
    mosquitto_username_pw_set(mosq, username, password);

    /* set log call callback */
   // mosquitto_log_callback_set(mosq, my_log_callback);

    /* set connect callback */
    mosquitto_connect_callback_set(mosq, my_connect_callback);

    /* set message callback */
    mosquitto_message_callback_set(mosq, my_message_callback);

    /* set subscribe callback */
    mosquitto_subscribe_callback_set(mosq, my_subscribe_callback);

    /* connect to the broker */
    if(mosquitto_connect(mosq, MQTT_SERVER_ADDR, MQTT_SERVER_PORT, MQQT_KEEPALIVE))
    {
        fprintf(stderr, "Unable to connect.\n");
        return -1;
    }
    
    /* 循环处理网络消息 */
    mosquitto_loop_forever(mosq, -1, 1);

    mosquitto_destroy(mosq);
    mosquitto_lib_cleanup();
    return 0;

 

 

static void my_connect_callback(struct mosquitto *mosq, void *userdata, int result)
{

    ret = mosquitto_subscribe(mosq,  NULL, "12345/67800/sub", 2);

}

 

static void my_subscribe_callback(struct mosquitto *mosq, void *userdata, int mid, int qos_count, const int *granted_qos)
{

    printf("Subscribed (mid: %d): %d\n", mid, granted_qos[0]);
    printf("Subscribed qos_count: %d\n", qos_count);

}

static void my_message_callback(struct mosquitto *mosq, void *userdata, const struct mosquitto_message *message)
{
    int ret = 0;
    printf("mqtt have a message, msglen=%d\n", message->payloadlen);

}

This kind mqtt hanging up on the use, but also to start work, but with the use of it can not subscribe to, do not know why. Later function to subscribe added a mid enough, do not know how to go back four had no time to watch, record it. To see if young people wishing to explore it.

  int mid = 0;

    ret = mosquitto_subscribe(mosq,  &mid, "12345/67800/sub", 2);

 

Guess you like

Origin blog.csdn.net/qq_16810885/article/details/92613418