mqtt

mqtt.fx 國內下載地址

http://mqttfx.bceapp.com/php

各類mqtt庫

https://github.com/mqtt/mqtt.github.io/wiki/libraries?spm=a2c4g.11186623.2.5.5YAnRSgit

mosquitto 安裝

https://mosquitto.org/
make & make installgithub

  • 問題 編譯過程找不到ares.h 打開config.mk文件,把WITH_SRV:=yes 改爲WITH_SRV:=no 就能夠編譯了
  • 問題 Invalid user 'mosquitto'
    adduser mosquitto
  • 問題 libmosquitto.so.1: cannot open shared object file
    ldconfig
  • 問題 uuid/uuid.h
    yum install libuuid-devel
mosquitto -c /etc/mosquitto/test.conf -d
mosquitto_passwd -b /etc/mosquitto/test.pwfile dev1 123
mosquitto_passwd -b /etc/mosquitto/test.pwfile admin 123
mosquitto_passwd -b /etc/mosquitto/test.pwfile mqtt_server 123
mosquitto_sub -u admin -P 123 -d -t 'device/#'
mosquitto_pub -u dev1 -P 123 -d -t 'device/dev1/report_info' -m 'xxx'
-r 保留retained

mosquitto

  • retained保留消息
    broker保存最後一次topic的保留消息,每當有客戶端訂閱這個topic,都會收到保留消息
    刪除保留消息:
    方式1:發送空消息體的保留消息;
    方式2:發送最新的保留消息覆蓋以前的(推薦);網絡

  • 增長用戶 mosquitto_passwd -b /etc/mosquitto/test.pwfile 11010611100000000008 ryrnogapp

  • 刪除用戶 mosquitto_passwd -D /etc/mosquitto/test.pwfile 11010611100000000008oop

  • 從新load
    kill -1 $pid 發送SIGHUP信號,讓mosquitto從新load confui

  • mosquittoconf
    log_dest file /var/log/mosquitto/mosquitto.log
    出現Unable to open log file /var/log/mosquitto/mosquitto.log for writing問題
    chmod 777 /var/log/mosquitto/code

MQTT Control Packet

  1. Fixed header 固定頭 MQTT Control Packet type 控制類型,包括CONNECT,CONNACK,PUBLISH,SUBSCRIBE等等
  2. Variable header 變量頭
  3. Payload

QOS

  • 最多一次(0) 客戶端發送一次就再也不發了
  • 最少一次(1) 客戶端會一直重複發送,知道收到服務端的PUBACK
  • 只一次(2) 確保消息服務端只會收到一次

php mqtt-client

https://github.com/mgdm/Mosquitto-PHPserver

  • 安裝
pecl install Mosquitto-alpha
/usr/local/php/etc/php.ini
extension=mosquitto.so
  • loopForever($timeout=1000) 在回調裏調用disconnect就會退出 或者exitLoop退出 exitLoop 表示不斷開鏈接退出loopForever $timeout 表示等待網絡,並非說loop長時間
相關文章
相關標籤/搜索