1、mqtt伺服器一啟動就報錯說所有埠都被佔用是怎麼?
放棄JAVA,選用C實現的伺服器
2、一個能運行的,用java實現的一個MQTT協議的demo,包括服務端和客戶端
我也在尋找,CSDN上有,就是太貴了,兄弟你要是找到了麻煩救濟一下我
3、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代碼如下:
4、php適合做MQTT伺服器嗎
Apache-Apollo:一個代理伺服器,在ActiveMQ基礎上發展而來,可以支持STOMP、AMQP、MQTT、Openwire、SSL和WebSockets等多種協議,並且Apollo提供後台管理頁面,方便開發者管理和調試。
EMQ:EMQ 2.0,號稱百萬級開源MQTT消息伺服器,基於Erlang/OTP語言平台開發,支持大規模連接和分布式集群,發布訂閱模式的開源MQTT消息伺服器。
HiveMQ:一個企業級的MQTT代理,主要用於企業和新興的機器到機器M2M通訊和內部傳輸,最大程度的滿足可伸縮性、易管理和安全特性,提供免費的個人版。HiveMQ提供了開源的插件開發包。
Mosquitto:一款實現了消息推送協議MQTT v3.1的開源消息代理軟體,提供輕量級的、支持可發布/可訂閱的消息推送模式。
5、如何用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.
6、ubuntu mqtt 服務怎麼搭建
在Ubuntu下搭建MQTT伺服器",主要涉及到【MQTT】在Ubuntu下搭建MQTT伺服器方面的內容,對於【MQTT】在Ubuntu下搭建MQTT伺服器感興趣的同學可以參考一下。
7、怎麼搭建esp8266智能家居mqtt伺服器
找客服應該
8、設備將數據發送到MQTT伺服器,那伺服器怎麼數據轉發到後台系統?
網上有很多的實際案例,多看幾個就明白了,比如這個:
9、想問一下,如何用MQTT協議搭建一個物聯網空調的阿里雲伺服器,謝謝
MQTT推薦使用EMQ,來自國人開發的產品
10、mqtt伺服器用哪一個好
^str="這里是一些含<tanle>有<tr bgcolor=#ff0000>html標<td width=200>簽的字元傳,也可以是多行的</td>文</tr>本</table>。"
Set re = New RegExp
x="/<[^>]+()/>"
re.Pattern = x
re.Global = True
re.IgnoreCase = True
re.MultiLine = True
str=re.replace(str,"$1")