第16章 Mosquitto客户端开发实战

张开发
2026/4/9 21:27:26 15 分钟阅读

分享文章

第16章 Mosquitto客户端开发实战
第16章 客户端开发实战16.1 Python客户端安装pipinstallpaho-mqtt基础示例importpaho.mqtt.clientasmqttdefon_connect(client,userdata,flags,rc):print(fConnected:{rc})client.subscribe(sensor/#)defon_message(client,userdata,msg):print(f{msg.topic}:{msg.payload.decode()})clientmqtt.Client()client.on_connecton_connect client.on_messageon_message client.connect(localhost,1883,60)client.loop_forever()发布示例importpaho.mqtt.clientasmqttimportjsonimporttime clientmqtt.Client()client.connect(localhost,1883,60)whileTrue:data{temperature:25.5,humidity:60.2,timestamp:time.time()}client.publish(sensor/data,json.dumps(data),qos1)time.sleep(5)16.2 JavaScript/Web客户端安装npminstallmqtt示例constmqttrequire(mqtt);constclientmqtt.connect(mqtt://localhost:1883);client.on(connect,(){console.log(Connected);client.subscribe(sensor/#);});client.on(message,(topic,message){console.log(topic,message.toString());});// 发布setInterval((){client.publish(sensor/data,JSON.stringify({temp:Math.random()*30}));},5000);WebSocket连接scriptsrchttps://unpkg.com/mqtt/dist/mqtt.min.js/scriptscriptconstclientmqtt.connect(ws://localhost:9001);client.on(connect,(){client.subscribe(home/#);});client.on(message,(topic,message){console.log(topic,message.toString());});/script16.3 Java客户端Maven依赖dependencygroupIdorg.eclipse.paho/groupIdartifactIdorg.eclipse.paho.client.mqttv3/artifactIdversion1.2.5/version/dependency示例importorg.eclipse.paho.client.mqttv3.*;publicclassMQTTClient{publicstaticvoidmain(String[]args){try{MqttClientclientnewMqttClient(tcp://localhost:1883,MqttClient.generateClientId());MqttConnectOptionsoptionsnewMqttConnectOptions();options.setCleanSession(true);options.setAutomaticReconnect(true);client.setCallback(newMqttCallback(){publicvoidmessageArrived(Stringtopic,MqttMessagemessage){System.out.println(topic: message);}publicvoiddeliveryComplete(IMqttDeliveryTokentoken){}publicvoidconnectionLost(Throwablecause){}});client.connect(options);client.subscribe(sensor/#);// 保持运行Thread.sleep(Long.MAX_VALUE);}catch(Exceptione){e.printStackTrace();}}}16.4 C/C客户端安装# Ubuntusudoaptinstalllibmosquitto-dev# CentOSsudoyuminstallmosquitto-devel示例#includemosquitto.h#includestdio.h#includestdlib.h#includestring.hvoidon_message(structmosquitto*mosq,void*obj,conststructmosquitto_message*message){printf(%s: %s\n,message-topic,(char*)message-payload);}intmain(){structmosquitto*mosqNULL;mosquitto_lib_init();mosqmosquitto_new(publisher,true,NULL);mosquitto_connect(mosq,localhost,1883,60);mosquitto_publish(mosq,NULL,test,6,hello,0,false);mosquitto_loop_start(mosq);sleep(1);mosquitto_loop_stop(mosq,false);mosquitto_destroy(mosq);mosquitto_lib_cleanup();return0;}

更多文章