/* * @Author: * @Github: * @Date: * @LastEditTime : * @Description: */ #include #include #include #include #include #include "mqtt_config.h" #include "mqtt_log.h" #include "mqttclient.h" #include #include #include int msgQueueID; static void topic1_handler(void* client, message_data_t* msg); void *mqtt_publish_thread(void *arg) { mqtt_client_t *client = (mqtt_client_t *)arg; char buf[100] = { 0 }; mqtt_message_t msg; memset(&msg, 0, sizeof(msg)); sprintf(buf, "welcome to mqttclient, this is a publish test..."); sleep(2); mqtt_list_subscribe_topic(client); msg.payload = (void *) buf; msg.qos = 0; while(1) { sprintf(buf, "welcome to mqttclient, this is a publish test, a rand number: %d ...", random_number()); mqtt_publish(client, "topic1", &msg); sleep(4); } } /* * mqtt初始化IP:36.134.213.14 1883 * */ int mqtt_init_connect(mqtt_client_t *client,char *client_id,char *user_name,char *password,char *ip,char *port) { mqtt_set_port(client, port); mqtt_set_host(client, ip); mqtt_set_client_id(client, client_id); mqtt_set_user_name(client, user_name); mqtt_set_password(client, password); mqtt_set_clean_session(client, 1); return mqtt_connect(client); } //创建mqtt任务 void create_mqtt_task() { mqtt_client_t *client = NULL; pthread_t thread1; client = mqtt_lease(); mqtt_log_init(); if(NULL==client) { MQTT_LOG_E("client malloc memory error"); exit(1); } int rc=mqtt_init_connect(client,"hisi_test",NULL,NULL,"36.134.23.11","1883"); if(rc!=0) { MQTT_LOG_E("mqtt connect error please check config"); exit(rc); } mqtt_subscribe(client, "rec_mqtt", QOS0, topic1_handler); rc = pthread_create(&thread1, NULL, mqtt_publish_thread, client); if(rc != 0) { MQTT_LOG_E("create mqtt publish thread fail"); exit(rc); } } /* * 所订阅消息的处理函数 */ static void topic1_handler(void* client, message_data_t* msg) { (void) client; MQTT_LOG_I("-----------------------------------------------------------------------------------"); MQTT_LOG_I("%s:%d %s()...\ntopic: %s\nmessage:%s", __FILE__, __LINE__, __FUNCTION__, msg->topic_name, (char*)msg->message->payload); MQTT_LOG_I("-----------------------------------------------------------------------------------"); }