特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/

1、Java代码

 package com.mao.mqtt;

 import java.text.SimpleDateFormat;
import java.util.Date; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.MqttTopic; /**
*
* 功能描述:MQTT测试
* 创建人: mao2080@sina.com
* 创建时间:2017年7月4日 下午5:08:59
* 修改人: mao2080@sina.com
* 修改时间:2017年7月4日 下午5:08:59
*/
public class MQTTTest_tcp { /**MQTT服务端ip及端口*/
private static String host = "ws://ip:8882"; /**账号*/
private static String username = "li2080"; /**密码*/
private static String password = "123"; /**订阅的主题*/
private static String subTopic = "a/b/c"; /**clientID*/
private static String clientId = "li2080"; /**发布的主题*/
private static String pubTopic = "a/b/c"; /**MQTT-Client*/
private static MqttClient client; /**MQTT-Client*/
private static int uuid = 0; /**
* @throws InterruptedException
* @throws MqttException */
public static void main(String[] args) throws InterruptedException, MqttException { // 订阅消息的方法
subscribe();
//
publish();
} /**
*
* 描述:订阅信息
* @author mao2080@sina.com
* @created 2017年7月4日 下午4:53:47
* @since
* @return
*/
public static void subscribe() {
try {
// 创建MqttClient
MQTTTest_tcp.getClient().setCallback(new MqttCallback() { public void connectionLost(Throwable arg0) { } public void messageArrived(String topic, MqttMessage message) throws Exception {
System.out.println("MQTT Rece:" + message.toString());
} public void deliveryComplete(IMqttDeliveryToken token) { } });
MQTTTest_tcp.getClient().subscribe(subTopic, 0);
System.out.println("连接状态:" + client.isConnected());
} catch (Exception e) {
e.printStackTrace();
}
} /**
*
* 描述:获取MqttClient
* @author mao2080@sina.com
* @created 2017年7月6日 上午9:56:37
* @since
* @return
* @throws MqttException
*/
public static MqttClient getClient() throws MqttException{
try {
if(client == null){
client = new MqttClient(host, clientId);
MqttConnectOptions conOptions = new MqttConnectOptions();
conOptions.setUserName(username);
conOptions.setPassword(password.toCharArray());
conOptions.setCleanSession(true);
client.connect(conOptions);
}
if(!client.isConnected()){
client.reconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
return client;
} /**
*
* 描述:发布信息
* @author mao2080@sina.com
* @throws MqttException
* @created 2017年7月4日 下午4:53:32
* @since
*/
public static void publish() throws MqttException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sendMsg = "{time:"+sdf.format(new Date())+", content:"+com.lds.iot.common.util.UUIDUtil.getLowerLetterNumber(15)+", from: java console}";
try {
MqttTopic topic = MQTTTest_tcp.getClient().getTopic(pubTopic);
MqttMessage message = new MqttMessage(sendMsg.getBytes());
message.setQos(0);
topic.publish(message);
System.out.println("MQTT Send:" + sendMsg);
} catch (Exception e) {
e.printStackTrace();
}
} }

2、Maven配置

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

3、运行效果

Java连接MQTT服务-ws方式的更多相关文章

  1. Java连接MQTT服务-wss方式

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  2. Java连接MQTT服务-tcp方式

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  3. java连接MySQL数据库的方式

    Java连接数据库的几种方法 *说明 1.以MySQL数据库为例 2.分为四个步骤: 建立数据库连接, 向数据库中提交sql 处理数据库返回的结果 关闭数据库连接 一:JDBC 1.建立数据库连接 只 ...

  4. 1.java连接pulsar服务

    目录 是什么 安装 Java客户端 1.引入GAV 2.创建配置项 3.验证测试 其他及代码下载 是什么 Pulsar 是一个用于服务器到服务器的消息系统,具有多租户.高性能等优势.详见 安装 本文主 ...

  5. Java 连接 Memcached 服务

    原文:http://www.runoob.com/memcached/java-memcached.html mac下安装和配置Memcached:http://www.pchou.info/open ...

  6. Memcached常用语法与java连接服务

    memcached常用语法及java使用方式 Author:SimpleWu Memcached 存储命令 Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中 ...

  7. Dynamics CRM 非声明验证方式下连接组织服务的两种方式的性能测试

    今天看了勇哥的博文"http://luoyong0201.blog.163.com/blog/static/1129305201510153391392/",又认识到了一种新的连接 ...

  8. MongoDB第三天(正则,管道,聚合,字符串,算术,日期,java连接MongoDB)

    部分正则表达式: i:忽略大小写 m:多行查找 x:设置 x 选项后,正则表达式中的非转义的空白字符将被忽略.   s:允许点字符(即.)匹配包括换行符在内的所有字符. w:匹配包括下划线的任何单词字 ...

  9. Java连接Hive使用Zookeeper的方式

    Java连接Hive的方式就是通过JDBC的方式来连接,URL为jdbc:hive2://host:port/db;principal=X@BIGDATA.COM等,这种方式是直接连接HiveServ ...

随机推荐

  1. js中setTimeout和setInterval的应用方法(转)

    JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操作. setTimeout("function& ...

  2. O008、LVM类型的Storage Pool

    参考https://www.cnblogs.com/CloudMan6/p/5277927.html   LVM类型的Storage Pool   不仅一个文件可以分配给客户机作为虚拟磁盘,宿主机上  ...

  3. 09 Python两种创建类的方式

    第一种比较普遍的方式: class Work(): def __init__(self,name): self.name = name w = Work('well woker') 这样就简单创建了一 ...

  4. css复杂动画(animation属性)

    1.声明:@keyframes name{   }: 2.涉及到的属性 animation-name:动画名称 animation-duration:单次动画总时长 animation-timing- ...

  5. 帝国cms 通过文章的id获取信息

    获取栏目id为13下id为46的数据 [e:loop={"select * from phome_ecms_news where classid = 13 and id = 46" ...

  6. console的各种用法

    console的各种用法 1.输出信息 console.log('消息内容!'); //输出普通信息 console.info('消息内容!'); //输出提示信息 (在ie上有区分) console ...

  7. Oracle VM VirtualBox 安装 Centos7 并配置静态IP

    新建虚拟电脑 选择类型和版本 设置内存大小 现在创建虚拟硬盘 选择VDI 硬盘足够就选择 固定大小 选择虚拟硬盘存储位置不要放在默认的C盘下,设置大小为30G 等待创建虚拟硬盘 虚拟硬盘创建成果之后 ...

  8. Beacon

    1.Beacon技术指的是通过使用低功耗蓝牙技术(Bluetooth Low Energy,也就是Bluetooth 4.0或者Bluetooth Smart),Beacon基站便可以自动创建一个信号 ...

  9. Linux内核管理子系统和进程管理子系统

    内核管理子系统职能:1.管理虚拟地址与物理地址的映射 2.物理内存的分配 程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体. 进程:是一个执行中的程序,它是动态的实体 进程四要素: ...

  10. SpringCloud 第一篇:服务的注册和发现(Eureka)

    一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...