當前位置:首頁 » 雲伺服器 » 小白搭建mqtt伺服器

小白搭建mqtt伺服器

發布時間: 2022-08-23 09:22:47

⑴ 想問一下,如何用MQTT協議搭建一個物聯網空調的阿里雲伺服器,謝謝

MQTT推薦使用EMQ,來自國人開發的產品

⑵ 如何自己搭建一個xmpp,實現推送消息

Android推送方案分析(MQTT/XMPP/GCM)
蝸牛TT 發布於 4個月前,共有 11 條評論
本文主旨在於,對目前Android平台上最主流的幾種消息推送方案進行分析和對比,比較客觀地反映出這些推送方案的優缺點,幫助大家選擇最合適的實施方案。
方案1、使用GCM服務(Google Cloud Messaging)
簡介:Google推出的雲消息服務,即第二代的G2DM。
優點:Google提供的服務、原生、簡單,無需實現和部署服務端。
缺點:Android版本限制(必須大於2.2版本),該服務在國內不夠穩定、需要用戶綁定Google帳號,受限於Google。

方案2、使用XMPP協議(Openfire + Spark + Smack)
簡介:基於XML協議的通訊協議,前身是Jabber,目前已由IETF國際標准化組織完成了標准化工作。
優點:協議成熟、強大、可擴展性強、目前主要應用於許多聊天系統中,且已有開源的java版的開發實例androidpn。
缺點:協議較復雜、冗餘(基於XML)、費流量、費電,部署硬體成本高。

方案3、使用MQTT協議(更多信息見:http://mqtt.org/)
簡介:輕量級的、基於代理的「發布/訂閱」模式的消息傳輸協議。
優點:協議簡潔、小巧、可擴展性強、省流量、省電,目前已經應用到企業領域(參考:http://mqtt.org/software),且已有C++版的服務端組件rsmb。
缺點:不夠成熟、實現較復雜、服務端組件rsmb不開源,部署硬體成本較高。

方案4、使用HTTP輪循方式
簡介:定時向HTTP服務端介面(Web Service API)獲取最新消息。
優點:實現簡單、可控性強,部署硬體成本低。
缺點:實時性差。

對各個方案的優缺點的研究和對比,推薦使用MQTT協議的方案進行實現,主要原因是:MQTT最快速,也最省流量(固定頭長度僅為2位元組),且極易擴展,適合二次開發。接下來,我們就來分析使用MQTT方案進行Android消息的原理和方法,並架設自己的推送服務。

如果還不明白的 話,要看分析的話,給你個網址:http://m.oschina.net/blog/82059
自己看看。

⑶ mqtt 伺服器搭建需要用到java嗎

最近公司做的項目中有用到消息推送,經過多方面的篩選之後確定了使用MQTT協議,相對於XMPP,MQTT更加輕量級,並且佔用用戶很少的帶寬。
MQTT是IBM推出的一種針對移動終端設備的基於TCP/IP的發布/預訂協議,可以連接大量的遠程感測器和控制設備。
MQTT的官網見:http://mqtt.org/。其中http://mqtt.org/software裡面提供了官方推薦的各種伺服器和客戶端使用的各種語言版本的API。
下面以伺服器Apollo 1.6為例,之前嘗試過使用ActiveMQ,效果很不理想,只能實現伺服器和客戶端一對一的通信,從官網上了解到Apollo屬於activemq的一個子工程。先不管這些了,言歸正傳,以下在windows環境下。
1、在這里下載Apollo伺服器,下載後解壓,然後運行apache-apollo-1.6\bin\apollo.cmd,輸入create mybroker(名字任意取,這里是根據官網介紹的來取的)創建伺服器實例,伺服器實例包含了所有的配置,運行時數據等,並且和一個伺服器進程關聯。
2、create mybroker之後會在bin目錄下生成mybroker文件夾,裡麵包含有很多信息,其中etc\apollo.xml文件下是配置伺服器信息的文件,etc\users.properties文件包含連接MQTT伺服器時用到的用戶名和密碼,後面會介紹,可以修改原始的admin=password,可以接著換行添加新的用戶名密碼。
3、打開cmd,運行…apache-apollo-1.6\bin\mybroker\bin\apollo-broker.cmd run 開啟伺服器,可以在瀏覽器中輸入http://127.0.0.1:61680/查看是否安裝成功,該界面展示了topic,連接數等很多信息。
經過上面的簡單步驟,伺服器基本上就已經完成,下一篇將介紹Android客戶端的編寫和注意事項。
客戶端使用的API,開始我使用的是mqtt-client,使用過後發現問題百出,不能很好的滿足要求,後來使用了官方推薦的Eclipse Paho,下面開始客戶端代碼的編寫,為了方便測試這里有android和j2se兩個工程:
1、新建android工程MQTTClient
2、MainActivity代碼如下:

⑷ ubuntu mqtt 服務怎麼搭建

在Ubuntu下搭建MQTT伺服器",主要涉及到【MQTT】在Ubuntu下搭建MQTT伺服器方面的內容,對於【MQTT】在Ubuntu下搭建MQTT伺服器感興趣的同學可以參考一下。

⑸ 在雲伺服器上搭建了mqtt,為什麼手機連接不上mqtt,要怎麼做才能連接上求求大神幫忙

MQTT協議是廣泛應用的物聯網協議,使用測試MQTT協議需要MQTT的代理。有兩種方法使用MQTT服務,一是租用現成的MQTT伺服器,如阿里雲,網路雲,華為雲等公用的雲平台提供的MQTT服務,使用公用的MQTT伺服器的好處是省事,但如果僅僅用於測試學習還需要注冊帳號,靈活性差些,有的平台還需要付費。另一方法是自己使用開源的MQTT組件來搭建。
MQTT伺服器非常多,如apache的ActiveMQ,emtqqd,HiveMQ,Emitter,Mosquitto,Moquette等等。
這里介紹的是用輕量級的mosquitto開源項目來搭建一個屬於自己的MQTT伺服器。
第一步:需要安裝一台linux主機,這不多介紹,可以使用真機安裝也可以使用虛擬機安裝。如果僅僅是自己測試使用都可以。
第二步:下載mosquitto需要的依賴
sudo apt-get install libssl-devsudo apt-get install uuid-devsudo apt-get install cmake

第三步:下載mosquitto並解壓,現在mosquitto官網最新的版本是1.5.1
tar xzvf mosquitto-1.5.1.tar.gz
第四步:編譯
cd mosquitto-1.5.1/
make
make install
第五步:啟動mosquitto
./mosquitto -v
1535473957: mosquitto version 1.5.1 starting
1535473957: Using default config.
1535473957: Opening ipv4 listen socket on port 1883.
1535473957: Opening ipv6 listen socket on port 1883.
這時候mosquitto就會以默認的參數啟動。如果需要帶配置文件可以修改配置文件mosquitto.conf,
啟動時候加上參數 -c,
./mosquitto -c mosquitto.conf
可以看到,mosquitto監聽的埠為1883.
這時候我們的MQTT伺服器就搭建好了。可找一個mqtt客戶端來測試一下。
先發布一個主題「home/garden/fountain/2」
內容是「hello world」
這時候在mosquitto會列印出下面的log
535474247: New connection from 192.168.1.105 on port 1883.
1535474247: New client connected from 192.168.1.105 as MQTT_FX_Client (c1, k60).
1535474247: No will message specified.
1535474247: Sending CONNACK to MQTT_FX_Client (0, 0)
1535474307: Received PINGREQ from MQTT_FX_Client
1535474307: Sending PINGRESP to MQTT_FX_Client
1535474339: Received PUBLISH from MQTT_FX_Client (d0, q0, r0, m0, 'home/garden/fountain/2', ... (12 bytes))
1535474367: Received PINGREQ from MQTT_FX_Client
1535474367: Sending PINGRESP to MQTT_FX_Client

訂閱主題「home/garden/fountain/2」

可以看到收到了自己發布的消息。
用wireshark抓包
可以看到抓到了一個MQTT的publish的報文。

⑹ 海為物聯雲HMI如何設置MQTT

首先需要搭建MQTT伺服器,然後搭建MySQL資料庫,然後使用海為組態寫段程序,最後配置客戶端驗證即可。具體可以參考內容 Haiwell(海為)HMI/CBOX/IPC MQTT 配置應用教程網頁鏈接

⑺ 如何用mosquitto搭建伺服器

Mosquitto是一款實現了消息推送協議MQTT v3.1的開源消息代理軟體,提供輕量級的,支持可發布/可訂閱的的消息推送模式,使設備對設備之間的短消息通信變得簡單,比如現在應用廣泛的低功耗感測器,手機、嵌入式計算機、微型控制器等移動設備。
Mosquitto官網:
MQTT協議:
客戶端連接日誌
1403334375: New connection from 121.201.8.163 on port 1883.

1403334375: New client connected from 121.201.8.163 as zhoujing (c0, k60, ujoyo).

1403334375: Sending CONNACK to zhoujing (0)

以上是一個客戶端正常連接的日誌。
第一行:伺服器收到一個新的連接請求
1403334375: 表示連接的時間點
121.201.8.163: 客戶端的IP地址
1883: 連接的伺服器埠號
第二行:伺服器為客戶端建立連接
zhoujing (c0, k60, ujoyo): 客戶端連接指定的ClientID為'zhoujing'
c0: 表示cleanSession=false,不清除session
k60: 表示keep-alive=60s
ujoyo: 表示使用的伺服器賬號為joyo
第三行:發送連接ACK包給客戶端
客戶端訂閱過程日誌
1403334375: Received SUBSCRIBE from zhoujing
1403334375: jiji/chat/9 (QoS 2)
1403334375: zhoujing 2 jiji/chat/9
1403334375: Sending SUBACK to zhoujing

第一行:伺服器收到一個來自ClientID為zhoujing的訂閱請求
第二行:伺服器識別zhoujing訂閱的主題為 jiji/chat/9,指定的QOS=2(有且只發送一次)
第三行:給ClientID=zhoujing客戶端發送訂閱ACK回包
伺服器發送內容給客戶端日誌
1403334378: Sending PUBLISH to zhoujing (d0, q2, r0, m1, 'jiji/chat/9', ... (396 bytes))
1403334378: Received PUBREC from zhoujing (Mid: 1)
1403334378: Sending PUBREL to zhoujing (Mid: 1)
1403334378: Received PUBCOMP from zhoujing (Mid: 1)

第一行:伺服器正在發送一個消息給ClientID=zhoujing的客戶端,消息體大小為396 bytes,消息主題為『jiji/chat/9』
(d0, q2, r0, m1)的解釋, 以下參數具體含義,參考MQTT協議
d: 表示mqtt報頭的DUP欄位
q: 表示的QOS欄位
r: 表示的是RETAIN
m: 表示的是消息ID,即mid
第二行:發布收稿階段,有保證的交付第一部分
第三行:出版發行階段,有保證的交付第二部分
第四行:發布完成,有保證的交付第三部分,至此一個內容發部過程完成
客戶端主動斷開連接的日誌
客戶端主動斷開連接的只有一行日誌,很簡單。如下所示:
1403334380: Received DISCONNECT from JY_API_PUSH_CLIENT

接收客戶端發布內容的過程日誌
1403334389: Received PUBLISH from JY_API_PUSH_CLIENT (d0, q2, r0, m1, 'jiji/chat/9', ... (396 bytes))
1403334389: Sending PUBREC to JY_API_PUSH_CLIENT (Mid: 1)
1403334389: Received PUBREL from JY_API_PUSH_CLIENT (Mid: 1)
1403334389: Sending PUBCOMP to JY_API_PUSH_CLIENT (Mid: 1)

第一行:接收來自ClientID=JY_API_PUSH_CLIENT的發布請求,發布的消息主題為'jiji/chat/9',消息大小為396 bytes
第二行:伺服器發送PUBREC給客戶端,此過程與發送消息給客戶端正好對稱,只不過是Received和Sending的對象反過來而已
第三行:伺服器接收到客戶端已經釋放的命令,內容交付第二步完成
第四行:通知客戶端,接收完成,至此一個消息發布完成,內容交付第三步完成
同一個ClientID重復連接時
1403334510: New connection from 121.201.7.150 on port 1883.
1403334510: Client JY_API_PUSH_CLIENT already connected, closing old connection.

接收客戶端心跳包
1403336716: Received PINGREQ from 36383A64663A6464003V0
1403336716: Sending PINGRESP to 36383A64663A6464003V0

客戶端連接超時,伺服器主動清除連接信息
1403336671: Client 33303A33393A3236003V0 has exceeded timeout, disconnecting.

客戶端socket異常時的日誌
1403337602: Socket error on client 351BBJKFX62C1, disconnecting.
1403337602: Socket error on client 351BBJKFX62C0, disconnecting.

⑻ 怎麼搭建esp8266智能家居mqtt伺服器

存儲讀取到的ESP8266的信息,然後用print發送到串口上去。 如果你的串口監視器打開了,就可以看到信息了。

⑼ 黑群暉怎樣搭建MQTT伺服器

1、打開群暉Docker,注冊表搜索:mqtt;
2、點擊下載好的鏡像文件創建容器,輸入容器名字,點擊高級設置
3、勾選啟用自動重新啟動
4、點擊網路—-勾選與docker host相同的網路,點擊應用,一直下一步直到創建完成

⑽ ios開發 mqttsdk 和 mqttkit 哪個好用

新建一個類VPKCClientManager
VPKCClientManager.h代碼如下
#import
#import "MQTTKit.h"

@interface VPKCClientManager : NSObject

+ (instancetype)sharedClient;
- (void):(void(^)(NSDictionary*dict))messageHandler;

@end

VPKCClientManager.m代碼如下
#import "VPKCClientManager.h"

#define MQTT_HOST @"**************"//MQTT伺服器網址 什麼?你們後台不會搭建MQTT伺服器 呵呵。。

static VPKCClientManager *instance = nil;

@implementation VPKCClientManager
{
MQTTClient *client;
}

+ (instancetype)sharedClient
{
//這里用到了單例 個人感覺不用也行
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc] init];
});
return instance;
}

- (instancetype)init
{
if (self = [super init]) {
//這里我們選擇了把deviceId作為mqtt的clientId port為埠號 username是用戶名 password是密碼
NSString *deviceId = [[NSUserDefaults standardUserDefaults]objectForKey:@"deviceId"];
NSString *clientId = [NSString stringWithFormat:@"kc-%@", deviceId];
client = [[MQTTClient alloc] initWithClientId:clientId];
client.port = 1883;
client.username = @"kidcares";
client.password = @"12345";
}
return self;
}
// 重點來了 這里是MQTT的訂閱方法 在你需要的地方 調用就行
- (void):(void(^)(NSDictionary*dict))messageHandler
{

[client setMessageHandler:^(MQTTMessage *message){
id json = [NSJSONSerialization JSONObjectWithData:message.payloadoptions:NSJSONReadingAllowFragments error:nil];
messageHandler(json);
}];

[client connectToHost:MQTT_HOSTcompletionHandler:^(MQTTConnectionReturnCode code) {
if (code == ConnectionAccepted) {

[client subscribe:client.clientID withCompletionHandler:nil];
}
}];

}
@end

然後在你要用的控制器中導入#import "VPKCClientManager.h"
創建一個對象static VPKCClientManager *clientManager;
clientManager = [VPKCClientManager sharedClient];//初始化

這里就是MQTT的訂閱方法 這個方法執行後 在MQTT伺服器上就可以看到你的設備 dict就是從MQTT伺服器傳下來的內容

[clientManager :^(NSDictionary *dict) {
[clientManager :^(NSDictionary *dict) {

for (id key in dict) {//因為MQTT可以有多種用處,為了區分各個功能這里我們選擇了遍歷dict 根據key來判斷如何做出響應
if ([key isEqualToString:@"shoutResult"]) {

}
else if ([key isEqualToString:@"chat"])
{
NSDictionary * chat = [dict valueForKey:@"chat"];
playurl = [chat valueForKey:@"fileUrl"];//這里取出伺服器文件的地址
time = [chat valueForKey:@"fileRunningTime"];
//這個是文件下載的封裝方法 下面會有介紹
[self.audio downloadTaskURL:playurl completion:^(NSURL*fileplay) {
[:@selector(refreshtable:) withObject:fileplaywaitUntilDone:NO];//因為AFN下載涉及到多線程問題,如果不採用主線程載入,UI效果不會刷新
self.url = fileplay;

}];
}
}

}];

熱點內容
全局變數存儲類別 發布:2025-01-18 06:39:29 瀏覽:423
蘋果平板的王者號如何轉移到安卓 發布:2025-01-18 06:37:11 瀏覽:611
圖片訪問量 發布:2025-01-18 06:36:34 瀏覽:497
數據結構與演算法下載 發布:2025-01-18 06:36:32 瀏覽:314
如何租ip伺服器 發布:2025-01-18 06:29:07 瀏覽:117
sql周的第一天 發布:2025-01-18 06:29:05 瀏覽:887
安卓軟體如何看本地視頻 發布:2025-01-18 06:28:24 瀏覽:927
安卓手機如何更換路由器管理員 發布:2025-01-18 05:53:45 瀏覽:615
Js腳本題目收錄 發布:2025-01-18 05:53:35 瀏覽:737
阿里雲伺服器如何使用教程 發布:2025-01-18 05:50:50 瀏覽:853