Java连接MQTT服务-tcp方式
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 = "tcp://ip:1883"; /**账号*/
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服务-tcp方式的更多相关文章
- Java连接MQTT服务-wss方式
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- Java连接MQTT服务-ws方式
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- java连接MySQL数据库的方式
Java连接数据库的几种方法 *说明 1.以MySQL数据库为例 2.分为四个步骤: 建立数据库连接, 向数据库中提交sql 处理数据库返回的结果 关闭数据库连接 一:JDBC 1.建立数据库连接 只 ...
- 1.java连接pulsar服务
目录 是什么 安装 Java客户端 1.引入GAV 2.创建配置项 3.验证测试 其他及代码下载 是什么 Pulsar 是一个用于服务器到服务器的消息系统,具有多租户.高性能等优势.详见 安装 本文主 ...
- Java 连接 Memcached 服务
原文:http://www.runoob.com/memcached/java-memcached.html mac下安装和配置Memcached:http://www.pchou.info/open ...
- Memcached常用语法与java连接服务
memcached常用语法及java使用方式 Author:SimpleWu Memcached 存储命令 Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中 ...
- Dynamics CRM 非声明验证方式下连接组织服务的两种方式的性能测试
今天看了勇哥的博文"http://luoyong0201.blog.163.com/blog/static/1129305201510153391392/",又认识到了一种新的连接 ...
- MongoDB第三天(正则,管道,聚合,字符串,算术,日期,java连接MongoDB)
部分正则表达式: i:忽略大小写 m:多行查找 x:设置 x 选项后,正则表达式中的非转义的空白字符将被忽略. s:允许点字符(即.)匹配包括换行符在内的所有字符. w:匹配包括下划线的任何单词字 ...
- 用java网络编程中的TCP方式上传文本文件及出现的小问题
自己今天刚学java网络编程中的TCP传输,要用TCP传输文件时,自己也是遇到了一些问题,抽空把它整理了一下,供自己以后参考使用. 首先在这个程序中,我用一个客户端,一个服务端,从客户端上传一个文本文 ...
随机推荐
- WPF最小化窗体后激活函数显示不了窗体
WPF最小化窗体后激活函数显示不了窗体 今天测试小哥给我提了一些问题,其中一个问题是这样的,点击web端的一个链接,是能启动本地的一个应用程序的,如果本地应用程序已启动(通过tcp进程间通信),那么应 ...
- 管理.MD
```` 对于水平低点的我一般是:讲解任务 -> 他复述任务 ->提出解决思路 -> 他复述思路 -> 认他思考一段时间,他提出他的意见和想法 -> 我再确定 -> ...
- springboot日志框架学习------slf4j和log4j2
springboot日志框架学习------slf4j和log4j2 日志框架的作用,日志框架就是用来记录系统的一些行为的,可以通过日志发现一些问题,在出现问题之后日志是好的一个帮手. 市面上的日志框 ...
- SVM处理多分类问题
"one-against-one" approach from sklearn import svm X = [[0], [1], [2], [3]] Y = [0, 1, 2, ...
- JVM常用指标查询
一.what‘s going on in Java Application 当系统卡顿,应用莫名被杀掉,我们应该怎么排查?在我已知的系统挂掉的情况,只经历过两种:1.内存申请不了(OOM):2.CPU ...
- ip正则
IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写.IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一 ...
- spark源码本地调试
1.前提条件: 1)安装jdk 版本: 2)安装scala 版本: 3)安装sbt 版本: 4)安装maven 5)安装git 版本: 6)安装idea,并配置好sbt.git.maven 2.从gi ...
- 第07课:【实战】调试Redis准备工作
7.1 Redis源码下载与编译 Redis源码下载与编译在前面已经说过了,同学们可以去第04课:GDB常用命令详解(上)学习. 编译成功后,会在src目录下生成多个可执行程序,其中redis-ser ...
- 实践:Linux用户、组和密码相关文件被破坏如何恢复系统
我们先看一下用户用户组和密码相关文件: 1 2 3 4 5 6 7 8 9 [root❄centos7 ~]☭ ll /etc/passwd* /etc/shadow* /etc/group* /et ...
- Java异常类型
1.java.lang.IllegalArgumentException 非法数据异常 2.javax.mail.AuthenticationFailedException: 550 User ha ...