当前位置: 首页 > news >正文

第16章 Mosquitto客户端开发实战

第16章 客户端开发实战

16.1 Python客户端

安装

pipinstallpaho-mqtt

基础示例

importpaho.mqtt.clientasmqttdefon_connect(client,userdata,flags,rc):print(f"Connected:{rc}")client.subscribe("sensor/#")defon_message(client,userdata,msg):print(f"{msg.topic}:{msg.payload.decode()}")client=mqtt.Client()client.on_connect=on_connect client.on_message=on_message client.connect("localhost",1883,60)client.loop_forever()

发布示例

importpaho.mqtt.clientasmqttimportjsonimporttime client=mqtt.Client()client.connect("localhost",1883,60)whileTrue:data={'temperature':25.5,'humidity':60.2,'timestamp':time.time()}client.publish("sensor/data",json.dumps(data),qos=1)time.sleep(5)

16.2 JavaScript/Web客户端

安装

npminstallmqtt

示例

constmqtt=require('mqtt');constclient=mqtt.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连接

<scriptsrc="https://unpkg.com/mqtt/dist/mqtt.min.js"></script><script>constclient=mqtt.connect('ws://localhost:9001');client.on('connect',()=>{client.subscribe('home/#');});client.on('message',(topic,message)=>{console.log(topic,message.toString());});</script>

16.3 Java客户端

Maven依赖

<dependency><groupId>org.eclipse.paho</groupId><artifactId>org.eclipse.paho.client.mqttv3</artifactId><version>1.2.5</version></dependency>

示例

importorg.eclipse.paho.client.mqttv3.*;publicclassMQTTClient{publicstaticvoidmain(String[]args){try{MqttClientclient=newMqttClient("tcp://localhost:1883",MqttClient.generateClientId());MqttConnectOptionsoptions=newMqttConnectOptions();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

示例

#include<mosquitto.h>#include<stdio.h>#include<stdlib.h>#include<string.h>voidon_message(structmosquitto*mosq,void*obj,conststructmosquitto_message*message){printf("%s: %s\n",message->topic,(char*)message->payload);}intmain(){structmosquitto*mosq=NULL;mosquitto_lib_init();mosq=mosquitto_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;}
http://www.jsqmd.com/news/614768/

相关文章:

  • 如何在 Go 中超时终止进程及其所有子进程
  • 龙芯k - 走马观碑组MPU驱动移植睬
  • OpenClaw工具拆解之exec
  • GraalVM Native Image安全性加固实战:5步完成TLS/反射/动态代理全链路可信验证,规避97.3% CVE-2023类漏洞
  • 如何配置表结构支持读写分离标记_在COMMENT中添加路由规则的架构级应用
  • 2026届必备的六大降重复率工具推荐
  • RPC数据集整理与 Scalabel 标注说明
  • AI Agent Harness Engineering 任务失败率过高?一文教你设计自愈与补偿机制
  • Java自动化生成Mapbox-GL雪碧图及JSON配置实战指南
  • 「码动四季·开源同行」轻量级k8s:适配边缘计算场景的轻量级的k8s-k3s入门与实战
  • 2026 行李箱横评|5 款实测数据,百元到千元怎么选
  • 向量嵌入性能骤降70%?EF Core 10 + ANN索引配置错误全解析,含官方未文档化AsVectorSearch()调用约束
  • IT产品标准化实战手册及注意事项
  • 代码之外周刊(第期):当技术让一切趋同,我们还剩什么?钠
  • 转行网安别死磕技术!合规才是企业刚需,运维转更易上岸
  • 20260408紫题训练 - Link
  • SQL中如何处理多重嵌套的字符串:函数嵌套调用技巧
  • SDMatte与数据库联动:开发一个带历史记录管理的在线抠图平台
  • AI Agent Harness Engineering 审计体系建设:Agent全行为的可追溯与可审计
  • Spring Boot 4.0 Agent-Ready 架构:从@ConditionalOnAgentEnabled注解到RuntimeMXBean探针注册的7步精准控制流
  • ESPS USB MSC 调试全过程记录拓
  • 免费降AIGC工具实测整理,论文过审再也不用愁!
  • 备考崩溃?这1个APP解决托福阅读三大噩梦:词汇、长难句、时间不够 - 速递信息
  • 项目介绍 MATLAB实现基于SSA-LSTM麻雀搜索算法(SSA)优化长短期记忆网络(LSTM)进行多变量时间序列光伏功率预测的详细项目实例(含模型描述及部分示例代码)专栏近期有大量优惠 还请多多点
  • mysql安装后忘记root密码如何找回_单用户模式重置密码方法
  • .NET 诊断技巧 | 日志框架原理、手写日志框架学习尉
  • DeepSeek-R1-Distill-Qwen-7B多场景落地:Ollama本地部署后用于周报生成、会议纪要提炼、邮件润色
  • 买家拍了一张带日文说明书的照片来问问题,客服看不懂怎么办?图片翻译工具实测
  • 【PHP大文件处理终极指南】:20年老司机亲授10种零内存溢出实战方案
  • 2026年热门雅思口语APP推荐:多次元雅思APP领跑,口语串题+AI精准评分成制胜关键 - 速递信息