热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MQTT实战

mqtt协议版本:3.1.1eclipsepahoclient版本:1.2.0eclipsepahoclient介绍PahoJavaClient是一个用Java编写的MQTT客户端
mqtt 协议版本: 3.1.1
eclipse paho client 版本: 1.2.0

eclipse paho client 介绍

Paho Java Client 是一个用Java编写的MQTT客户端库, 用于开发在JVM或其他Java兼容平台(如Android)上运行的应用程序.

Paho Java Client提供了两个API: MqttAsyncClient 提供完全异步的API, 通过注册的回调完成. MqttClient 是 MqttAsyncClient 的同步包装器.

例子

String topic = "MQTT Examples";String content = "Message from MqttPublishSample";int qos = 2;String broker = "tcp://iot.eclipse.org:1883";String clientId = "JavaSample";MemoryPersistence persistence = new MemoryPersistence();try {MqttClient sampleClient = new MqttClient(broker, clientId, persistence);MqttConnectOptions connOpts = new MqttConnectOptions();connOpts.setCleanSession(true);System.out.println("Connecting to broker: "+broker);sampleClient.connect(connOpts);System.out.println("Connected");System.out.println("Publishing message: "+content);MqttMessage message = new MqttMessage(content.getBytes());message.setQos(qos);sampleClient.publish(topic, message);System.out.println("Message published");sampleClient.disconnect();System.out.println("Disconnected");System.exit(0);} catch(MqttException me) {System.out.println("reason "+me.getReasonCode());System.out.println("msg "+me.getMessage());System.out.println("loc "+me.getLocalizedMessage());System.out.println("cause "+me.getCause());System.out.println("excep "+me);me.printStackTrace();}

这个就是官网提供的例子, 可以直接连上代理做测试的.

相关类介绍

MqttClient

此类主要用于连接代理、发布消息、订阅消息、断开连接.

public void publish(String topic, byte[] payload,int qos, boolean retained) throws MqttException, MqttPersistenceException {}
public void publish(String topic, MqttMessage message) throws MqttException, MqttPersistenceException {}public void subscribe(String topicFilter) throws MqttException {}
public void subscribe(String[] topicFilters) throws MqttException {}
public void subscribe(String topicFilter, int qos) throws MqttException {}
public void subscribe(String[] topicFilters, int[] qos) throws MqttException {}
public void subscribe(String topicFilter, IMqttMessageListener messageListener) throws MqttException {}
public void subscribe(String[] topicFilters, IMqttMessageListener[] messageListeners) throws MqttException {}
public void subscribe(String topicFilter, int qos, IMqttMessageListener messageListener) throws MqttException {}
public void subscribe(String[] topicFilters, int[] qos, IMqttMessageListener[] messageListeners) throws MqttException {}public void connect() throws MqttSecurityException, MqttException {}
public void connect(MqttConnectOptions options) throws MqttSecurityException, MqttException {}public void disconnect() throws MqttException {}
public void disconnect(long quiesceTimeout) throws MqttException {}

MqttConnectOptions

此类保存了客户端连接到代理时的一些参数.

public void setUserName(String userName) {}public void setPassword(char[] password) {}public void setConnectionTimeout(int connectionTimeout) {}

MqttMessage

要发送的消息正文, 指定消息内容、Qos、Retained.

public void setQos(int qos) {}
public void setPayload(byte[] payload) {}
public void setRetained(boolean retained) {}



推荐阅读
  • 设计模式系列-原型模式
    一、上篇回顾上篇创建者模式中,我们主要讲述了创建者的几类实现方案,和创建者模式的应用的场景和特点,创建者模式适合创建复杂的对象,并且这些对象的每个组成部分的详细创建步骤可以是动态的变化的,但 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • SecureCRT 使用指南与技巧
    本文详细介绍 SecureCRT 软件的基本功能,并分享了一些实用的操作技巧,旨在帮助用户提高远程管理效率。 ... [详细]
  • 本文探讨了在使用Apache Flink向Kafka发送数据过程中遇到的事务频繁失败问题,并提供了详细的解决方案,包括必要的配置调整和最佳实践。 ... [详细]
  • 本文详细介绍了Keycloak框架中UserRepresentation类下的isEnabled()方法的功能与应用,并通过多个实际代码示例说明其在用户管理中的具体实现。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 本文章利用header()函数来实现页面跳,我们介绍到404,302,301等状态跳转哦,下面有很多的状态自定的函数有需要的同学可以测试一下。heade ... [详细]
  • 本文探讨了如何选择一个合适的序列化版本ID(serialVersionUID),包括使用生成器还是简单的整数,以及在不同情况下应如何处理序列化版本ID。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 深入解析Java中的空指针异常及其预防策略
    空指针异常(NullPointerException,简称NPE)是Java编程中最常见的异常之一。尽管其成因显而易见,但开发人员往往容易忽视或未能及时采取措施。本文将详细介绍如何有效避免空指针异常,帮助开发者提升代码质量。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • JVM钩子函数的应用场景详解
    本文详细介绍了JVM钩子函数的多种应用场景,包括正常关闭、异常关闭和强制关闭。通过具体示例和代码演示,帮助读者更好地理解和应用这一机制。适合对Java编程和JVM有一定基础的开发者阅读。 ... [详细]
author-avatar
jimmychoong_959
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有