国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

linux下MQTT服務(wù)器(EMQX)搭建及paho.mqtt.c客戶端開(kāi)發(fā)

這篇具有很好參考價(jià)值的文章主要介紹了linux下MQTT服務(wù)器(EMQX)搭建及paho.mqtt.c客戶端開(kāi)發(fā)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言:

MQTT 是一種基于客戶端服務(wù)端架構(gòu)的發(fā)布 / 訂閱模式的消息傳輸協(xié)議。它的設(shè)計(jì)思想是輕巧、開(kāi)放、 簡(jiǎn)單、規(guī)范,易于實(shí)現(xiàn)。這些特點(diǎn)使得它對(duì)很多場(chǎng)景來(lái)說(shuō)都是很好的選擇,特別是對(duì)于受限的環(huán)境如機(jī)器與 機(jī)器的通信( M2M )以及物聯(lián)網(wǎng)環(huán)境( IoT )。? ? ? ? ----MQTT 協(xié)議中文版

一.linux下EMQX服務(wù)器搭建

下載安裝包 免費(fèi)下載、試用 EMQ 產(chǎn)品
找對(duì)自己開(kāi)發(fā)環(huán)境版本
emqx linux,linux,c語(yǔ)言
1.下載deb包
wget https://www.emqx.com/zh/downloads/broker/4.4.19/emqx-4.4.19-otp24.3.4.2-1-ubuntu16.04-amd64.deb
2.安裝
sudo apt install ./emqx-4.4.19-otp24.3.4.2-1-ubuntu16.04-amd64.deb
3.運(yùn)行
sudo systemctl start emqx
此時(shí)在瀏覽器登錄服務(wù)器IP?? http://(server_ip):18083/#/

即可驗(yàn)證自己服務(wù)器安裝的是否成功,用戶名是 admin,初始密碼 public

emqx linux,linux,c語(yǔ)言

二.客戶端工具M(jìn)QTTX的安裝

下載地址 免費(fèi)下載、試用 EMQ 產(chǎn)品
emqx linux,linux,c語(yǔ)言

?我用的是windows下的,接著安裝運(yùn)行直接下一步走下去就行了。

emqx linux,linux,c語(yǔ)言
name:客戶端的名字
client ID:客戶端ID
host:第一步里面服務(wù)器的IP地址
創(chuàng)建好了之后連接服務(wù)器,然后再創(chuàng)建一個(gè)客戶端,相互收發(fā)驗(yàn)證。
emqx linux,linux,c語(yǔ)言
emqx linux,linux,c語(yǔ)言

三.linux下paho.mqtt.c的開(kāi)發(fā)

1. paho.mqtt.c下載
git clone https://github.com/eclipse/paho.mqtt.c.git
cd?paho.mqtt.c
mkdir build
cd build
cmake ..
make 
make install

emqx linux,linux,c語(yǔ)言

安裝完成會(huì)在/usr/local/include和/usr/local/lib下看見(jiàn)mqtt的頭文件和動(dòng)態(tài)庫(kù)。

?2.mqtt代碼開(kāi)發(fā)
#include <MQTTAsync.h>  //換成你自己的安裝路徑,不然回報(bào)錯(cuò)
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#define  SERVERIP "xxx"  //換成你自己的服務(wù)器
#define Clientid "sza123"    //這個(gè)隨便寫(xiě)
int isConnected=0;
//消息回調(diào)函數(shù)
int onMessrecv(void* context,char*topicName,int topicLen,MQTTAsync_message*message){
            printf("recv name:\ntopic:%s,payload:%s\n",topicName,(char*)message->payload);
            MQTTAsync_free(topicName);
            MQTTAsync_free(message);
            return 1;         
}
void onSubscribe(void* context,MQTTAsync_successData* response){
    printf("sub success!");
}
//連接mqtt服務(wù)器
void onConnect(void *context,MQTTAsync_successData* response)
{
    MQTTAsync client =(MQTTAsync)context;
    int ret;
    MQTTAsync_responseOptions response_opt=MQTTAsync_responseOptions_initializer;
    printf("Succeed in connecting to mqtt-server!\n");
    response_opt.onSuccess=onSubscribe;
    ret=MQTTAsync_subscribe(client,"/pub",1,&response_opt);//訂閱/pub主題消息
    if(ret!=MQTTASYNC_SUCCESS){
        printf("fail to sub!\n");
    }
    isConnected=1;
}
void disConnect(void *context,MQTTAsync_failureData* response)
{
    printf("Failed to connect  mqtt-server!\n");
}
void onSend(void* context,MQTTAsync_successData* response){
    printf("send message to mqtt server success!\n");
}
int main()
{
    MQTTAsync client;
    int ret;
    MQTTAsync_connectOptions conn_opt = MQTTAsync_connectOptions_initializer;//初始化連接選項(xiàng)
    ret=MQTTAsync_create(&client,SERVERIP,Clientid,MQTTCLIENT_PERSISTENCE_NONE,NULL);
    if(ret!=MQTTASYNC_SUCCESS)
    {
        printf("Cannot create mqtt client!\n");
        return -1;
    }
    //初始化接收消息回調(diào)
    ret=MQTTAsync_setCallbacks(client,NULL,NULL,onMessrecv,NULL);
    if(ret!=MQTTASYNC_SUCCESS){
        printf("cannnot set call back function!\n");
        return  -1;
    }
    conn_opt.onSuccess=onConnect;
    conn_opt.onFailure=disConnect;
    conn_opt.automaticReconnect=1;
    conn_opt.context=client;
    conn_opt.cleansession=0;
    //conn_opt.username="xxx";//設(shè)置用戶名密碼換成自己的
    //conn_opt.password="xxx";
    ret=MQTTAsync_connect(client,&conn_opt);
    //因?yàn)槭钱惒降?,?dāng)MQTTAsync_connect返回的時(shí)候只是代表底層代碼對(duì)參數(shù)進(jìn)行了檢查
    //當(dāng)正確返回時(shí),表示底層代碼接收了該connect連接命令
    if(ret!=MQTTASYNC_SUCCESS)
    {
        printf("Cannot start a mqttt server connect!\n");
        return -1;
    }
    while (1){
        //1表示成功連接到我們的服務(wù)器
        if(isConnected==1){
            MQTTAsync_message message=MQTTAsync_message_initializer;
            MQTTAsync_responseOptions res_option=MQTTAsync_responseOptions_initializer;
            char buffer[200];
            static int temp=16;
            static int humid=58;
            sprintf(buffer," temp:%d,humid:%d ",temp++,humid++);
            message.payload=buffer;
            message.payloadlen=strlen(buffer);
            message.qos=1;
            res_option.onSuccess=onSend;
            printf("read the message is :");
            //發(fā)布消息
            ret=MQTTAsync_sendMessage(client,"/sensor/dht11/0",&message,&res_option);//發(fā)送消息
            if(ret!=MQTTASYNC_SUCCESS){
                printf("參數(shù)錯(cuò)誤!");
            }
                   sleep(10);  
                   if(temp>30|humid>90){
                       temp=16;
                       humid=58;
                   }
        }
    }
    return 0;
}


?然后編譯

gcc mqtt.c -o mqtt -I /usr/local/include/ -lpaho-mqtt3a

運(yùn)行mqtt

emqx linux,linux,c語(yǔ)言

?emqx linux,linux,c語(yǔ)言

?此時(shí)windows上的客戶端工具就會(huì)接收相應(yīng)的內(nèi)容,也可以向linux客戶端發(fā)送消息。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-740074.html

到了這里,關(guān)于linux下MQTT服務(wù)器(EMQX)搭建及paho.mqtt.c客戶端開(kāi)發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ubuntu18.04.6 搭建mqtt服務(wù)器emqx 之docker方式

    ubuntu18.04.6 搭建mqtt服務(wù)器emqx 之docker方式

    前提docker環(huán)境已經(jīng)安裝好 如未安裝,請(qǐng)參考博文https://blog.csdn.net/a554521655/article/details/134251763

    2024年01月20日
    瀏覽(26)
  • 【MQTT服務(wù)器】寶塔服務(wù)器安裝EMQX

    【MQTT服務(wù)器】寶塔服務(wù)器安裝EMQX

    本文介紹一種簡(jiǎn)單的服務(wù)器安裝EMQX方法。 ????????進(jìn)入軟件商店搜索docker,安裝 ????????拉取完成在容器列表可查看emqx狀態(tài) emqx的web管理地址:http://服務(wù)器公網(wǎng)IP:18083 賬號(hào):admin 密碼:public 其他端口:如果發(fā)現(xiàn)某個(gè)端口訪問(wèn)不了,嘗試去寶塔面板的安全位置去放行一

    2024年02月03日
    瀏覽(137)
  • RuoYi-Vue前后端分離搭建MQTT服務(wù)器實(shí)現(xiàn)消息訂閱、發(fā)布、數(shù)據(jù)存儲(chǔ) (EMQX Windows10)最全,懶人操作

    RuoYi-Vue前后端分離搭建MQTT服務(wù)器實(shí)現(xiàn)消息訂閱、發(fā)布、數(shù)據(jù)存儲(chǔ) (EMQX Windows10)最全,懶人操作

    1、在RuoYi-Vue項(xiàng)目的superVisualizationSys-common模塊下的pom.xml加入jar包依賴 3、在superVisualizationSys-commonsrcmainjavacomsuperVisualizationcommonutils目錄下新建mqtt文件夾,添加以下三個(gè)文件 注:項(xiàng)目報(bào)紅的地方可以按Alt+Enter鍵導(dǎo)包 下載路徑: https://www.emqx.io/zh/download ? 1.?在windows上安裝

    2024年02月15日
    瀏覽(33)
  • 連接(EMQX)mqtt服務(wù)器時(shí)報(bào)錯(cuò)

    連接(EMQX)mqtt服務(wù)器時(shí)報(bào)錯(cuò)

    線下項(xiàng)目連接正常,部署到阿里云服務(wù)器的項(xiàng)目也正常連接,僅在安裝emqx的服務(wù)器上部署的項(xiàng)目連接不上。 具體報(bào)錯(cuò)信息,如下: 2022-09-01 15:25:27.791 ERROR 1 — [ main] c.z.iotplatfrom.util.mqtt.MQTTListener : Unable to connect to server org.eclipse.paho.client.mqttv3.MqttException: Unable to connect to server

    2024年02月05日
    瀏覽(26)
  • 華為云云耀云服務(wù)器L實(shí)例評(píng)測(cè)|基于華為云云耀云服務(wù)器L實(shí)例搭建EMQX大規(guī)模分布式 MQTT 消息服務(wù)器場(chǎng)景體驗(yàn)

    華為云云耀云服務(wù)器L實(shí)例評(píng)測(cè)|基于華為云云耀云服務(wù)器L實(shí)例搭建EMQX大規(guī)模分布式 MQTT 消息服務(wù)器場(chǎng)景體驗(yàn)

    EMQX 是一款國(guó)內(nèi)開(kāi)發(fā)的大規(guī)模分布式MQTT消息服務(wù)器,它旨在為物聯(lián)網(wǎng)應(yīng)用提供高效可靠的連接,實(shí)時(shí)處理和分發(fā)消息以及事件流數(shù)據(jù)。作為一個(gè)關(guān)鍵的物聯(lián)網(wǎng)基礎(chǔ)設(shè)施組件,EMQX為企業(yè)和開(kāi)發(fā)者提供了一個(gè)強(qiáng)大的工具,用于構(gòu)建各種規(guī)模和復(fù)雜度的物聯(lián)網(wǎng)與云應(yīng)用。 EMQX的主要

    2024年02月08日
    瀏覽(26)
  • 免費(fèi)版的mqtt服務(wù)器(EMQX 開(kāi)源版)

    免費(fèi)版的mqtt服務(wù)器(EMQX 開(kāi)源版)

    免費(fèi)版的mqtt服務(wù)器(EMQX 開(kāi)源版) 全球下載量超千萬(wàn)的開(kāi)源物聯(lián)網(wǎng) MQTT 服務(wù)器,高效可靠連接海量物聯(lián)網(wǎng)設(shè)備,高性能實(shí)時(shí)處理消息與事件流數(shù)據(jù),可運(yùn)行在公有云、私有云和混合云上。 免費(fèi)下載、試用 EMQ 產(chǎn)品 (emqx.com) https://www.emqx.com/zh/try?product=broker ecs云服務(wù)優(yōu)惠券 htt

    2024年02月11日
    瀏覽(24)
  • 阿里云Ubuntu安裝部署EMQX物聯(lián)網(wǎng)MQTT服務(wù)器

    阿里云Ubuntu安裝部署EMQX物聯(lián)網(wǎng)MQTT服務(wù)器

    阿里云服務(wù)器免費(fèi)領(lǐng)取https://developer.aliyun.com/adc/student/ Xshell 云服務(wù)器可以通過(guò)遠(yuǎn)程連接的方式進(jìn)行控制 1.下載安裝包 XShell官網(wǎng) ?2.簡(jiǎn)單配置 名稱:隨便即可 主機(jī):服務(wù)器IP地址 端口號(hào):默認(rèn)22端口 連接后輸入用戶名(通常為root),密碼后成功進(jìn)入服務(wù)器終端 ? ?此外,還有

    2023年04月13日
    瀏覽(32)
  • Linux搭建MQTT服務(wù)器(Mosquitto)

    Linux搭建MQTT服務(wù)器(Mosquitto)

    編譯時(shí),若提示fatal error: cjson/cJSON.h: No such file or directory,需要安裝cJSON,然后重新安裝mosquitto。 若不添加軟連接,發(fā)布、訂閱消息時(shí)會(huì)提示\\\"error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory\\\"。 打開(kāi)兩個(gè)服務(wù)器連接,分別執(zhí)行mosquitto_sub、

    2024年02月09日
    瀏覽(32)
  • Ubuntu部署EMQX開(kāi)源版MQTT服務(wù)器-Orange Pi部署-服務(wù)器部署

    Ubuntu部署EMQX開(kāi)源版MQTT服務(wù)器-Orange Pi部署-服務(wù)器部署

    ????????作為全球最具擴(kuò)展性的 MQTT 消息服務(wù)器,EMQX 提供了高效可靠海量物聯(lián)網(wǎng)設(shè)備連接,能夠高性能實(shí)時(shí)移動(dòng)與處理消息和事件流數(shù)據(jù),本文將介紹如何在Ubuntu 22.04上部署MQTT服務(wù)器。我們本次選擇開(kāi)源版,使用離線安裝方式部署。 ? ? ? ?安裝包可以有兩種格式,一種

    2024年01月18日
    瀏覽(30)
  • 使用合宙Air724UG物聯(lián)網(wǎng)模塊發(fā)送MQTT消息至EMQX服務(wù)器 MQTT如何發(fā)送消息 AIR724發(fā)送MQTT至騰訊云 騰訊云接收MQTT消息

    使用合宙Air724UG物聯(lián)網(wǎng)模塊發(fā)送MQTT消息至EMQX服務(wù)器 MQTT如何發(fā)送消息 AIR724發(fā)送MQTT至騰訊云 騰訊云接收MQTT消息

    在上一篇關(guān)于物聯(lián)網(wǎng)的文章中介紹了如何建立一個(gè)MQTT的EMQX服務(wù)器,有需要的同學(xué)可以點(diǎn)擊查看。在這里服務(wù)器的作用相當(dāng)于建立一個(gè)MQTT消息的中轉(zhuǎn)站,消息先發(fā)送到服務(wù)器中,再在服務(wù)器進(jìn)行轉(zhuǎn)發(fā)消息。 那么有了一個(gè)轉(zhuǎn)發(fā)的平臺(tái),如何在嵌入式終端中發(fā)送MQTT消息呢,在這

    2024年02月09日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包