mqtt的ClientPub
来源:互联网 发布:照片打印软件 编辑:程序博客网 时间:2024/06/13 05:15
package com.demo.mqtt;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import com.ibm.mqtt.MqttClient;
import com.ibm.mqtt.MqttException;
import com.ibm.mqtt.MqttNotConnectedException;
import com.ibm.mqtt.MqttPersistenceException;
import com.ibm.mqtt.MqttSimpleCallback;
public class ClientPub {
private final static String CONNECTION_STRING = "tcp://123.57.81.91:1883";
private final static boolean CLEAN_START = true;
private final static short KEEP_ALIVE = 30;// 低耗网络,但是又需要及时获取数据,心跳30s
private final static String CLIENT_ID = "clientPub11";
private static Map<String, MqttClient> map = new HashMap<String, MqttClient>();
public ClientPub() {
}
public MqttClient createConn(String ip) {
MqttClient mqttClient = null;
if(map.isEmpty() || !map.containsKey(CLIENT_ID + ip)) {
try {
mqttClient = new MqttClient("tcp://" + ip + ":1883");
map.put(CLIENT_ID + ip, mqttClient);
} catch (MqttException e) {
e.printStackTrace();
}
} else {
mqttClient = map.get(CLIENT_ID + ip);
}
if(mqttClient == null || !mqttClient.isConnected()) {
try {
mqttClient.connect(CLIENT_ID + ip, CLEAN_START, KEEP_ALIVE);
} catch (MqttException e) {
e.printStackTrace();
}
}
return mqttClient;
}
public void publishMessage(String topic, String content, int qos, MqttClient mqttClient) {
try {
mqttClient.publish(topic, content.getBytes(), qos, false);
} catch (MqttNotConnectedException e) {
e.printStackTrace();
} catch (MqttPersistenceException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (MqttException e) {
e.printStackTrace();
}
}
public void closeConn() {
for(Entry<String, MqttClient> entry : map.entrySet()) {
MqttClient mqttClient = entry.getValue();
mqttClient.terminate();
}
}
public static void main(String[] args) throws MqttException, InterruptedException {
ClientPub clientPub = new ClientPub();
MqttClient mqttClient = clientPub.createConn("123.57.81.91");
clientPub.publishMessage("user/2", "this is a test", 2, mqttClient);
// clientPub.publishMessage("SECMSGNOTIFYNEW/Topic1", "this is a test2", 2, mqttClient);
// clientPub.closeConn();
Thread.sleep(1000);
clientPub.closeConn();
}
}
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import com.ibm.mqtt.MqttClient;
import com.ibm.mqtt.MqttException;
import com.ibm.mqtt.MqttNotConnectedException;
import com.ibm.mqtt.MqttPersistenceException;
import com.ibm.mqtt.MqttSimpleCallback;
public class ClientPub {
private final static String CONNECTION_STRING = "tcp://123.57.81.91:1883";
private final static boolean CLEAN_START = true;
private final static short KEEP_ALIVE = 30;// 低耗网络,但是又需要及时获取数据,心跳30s
private final static String CLIENT_ID = "clientPub11";
private static Map<String, MqttClient> map = new HashMap<String, MqttClient>();
public ClientPub() {
}
public MqttClient createConn(String ip) {
MqttClient mqttClient = null;
if(map.isEmpty() || !map.containsKey(CLIENT_ID + ip)) {
try {
mqttClient = new MqttClient("tcp://" + ip + ":1883");
map.put(CLIENT_ID + ip, mqttClient);
} catch (MqttException e) {
e.printStackTrace();
}
} else {
mqttClient = map.get(CLIENT_ID + ip);
}
if(mqttClient == null || !mqttClient.isConnected()) {
try {
mqttClient.connect(CLIENT_ID + ip, CLEAN_START, KEEP_ALIVE);
} catch (MqttException e) {
e.printStackTrace();
}
}
return mqttClient;
}
public void publishMessage(String topic, String content, int qos, MqttClient mqttClient) {
try {
mqttClient.publish(topic, content.getBytes(), qos, false);
} catch (MqttNotConnectedException e) {
e.printStackTrace();
} catch (MqttPersistenceException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (MqttException e) {
e.printStackTrace();
}
}
public void closeConn() {
for(Entry<String, MqttClient> entry : map.entrySet()) {
MqttClient mqttClient = entry.getValue();
mqttClient.terminate();
}
}
public static void main(String[] args) throws MqttException, InterruptedException {
ClientPub clientPub = new ClientPub();
MqttClient mqttClient = clientPub.createConn("123.57.81.91");
clientPub.publishMessage("user/2", "this is a test", 2, mqttClient);
// clientPub.publishMessage("SECMSGNOTIFYNEW/Topic1", "this is a test2", 2, mqttClient);
// clientPub.closeConn();
Thread.sleep(1000);
clientPub.closeConn();
}
}
0 0
- mqtt的ClientPub
- MQTT,MQTT-SN的重要文章
- MQTT调试工具 mqtt.fx的使用
- MQTT的学习研究
- MQTT协议的特点
- mqtt的ClientSub
- MQTT的简单应用
- mqtt 的学习
- MQTT的学习
- MQTT的通配符
- MQTT服务器的搭建
- mqtt
- mqtt
- MQTT
- mqtt
- MQTT
- MQTT
- MQTT
- CSS 整理(3)
- Ubuntu_1204_64bit 通过工具 squid cache 搭建代理服务器
- Subsequence
- C 你妹儿啊~~~~~~
- java 基础知识 3
- mqtt的ClientPub
- 三个同步与互斥问题之生产者与消费者
- MVC4 引用DLL 成功越狱实体模型 自由调用存储过程 自由传递参数
- svn服务器搭建
- C语言:循环单链表的创建,遍历,插入
- Delphi XE8,C++ Builder XE8,RAD Studio XE8 Update1 精简版
- java 中 try catch finally 语句的执行顺序
- 浅谈对java中的hashset和Treeset 中重写equals()方法的不同及用法
- mqtt的ClientSub