board java_Java 上报 thingsboard 遥测属性

欢迎大家加入thingsboard 二次开发讨论群:121202538

import org.apache.commons.lang.StringUtils;

import org.apache.log4j.Logger;

import org.eclipse.paho.client.mqttv3.*;

import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import java.io.DataInputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.math.BigInteger;

import java.net.ServerSocket;

import java.net.Socket;

import java.net.UnknownHostException;

import java.text.DecimalFormat;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class ClientDemo {

/**

* @param args

* @throws IOException

* @throws UnknownHostException

*/

private static Logger logger=Logger.getLogger(ClientDemo.class);

public void toTB(String content){

logger.info("开始执行DHT方法*************************");

String HOST = "tcp://47.99.141.22:1883"; //TBip地址和mqtt端口

String TOPIC = "v1/devices/me/telemetry";//TB遥测数据API接口

String clientid = "client2";

MqttClient client=null;

MqttConnectOptions options;

MqttTopic topic;

String username="iQHq2135klo1PTVb6HCy";//设备秘钥

try {

// host为主机名,clientid即连接MQTT的客户端ID,一般以唯一标识符表示,MemoryPersistence设置clientid的保存形式,默认为以内存保存

client = new MqttClient(HOST, clientid, new MemoryPersistence());

// MQTT的连接设置

options = new MqttConnectOptions();

// 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录,这里设置为true表示每次连接到服务器都以新的身份连接

options.setCleanSession(true);

// 设置连接的用户名

options.setUserName(username);//设备秘钥

// 设置连接的密码

//options.setPassword(passWord.toCharArray());

// 设置超时时间 单位为秒

options.setConnectionTimeout(10);

// 设置会话心跳时间 单位为秒 服务器会每隔1.5*20秒的时间向客户端发送个消息判断客户端是否在线,但这个方法并没有重连的机制

options.setKeepAliveInterval(20);

// 设置回

client.setCallback(new MqttCallbackExtended() {

@Override

public void messageArrived(String topic, MqttMessage message) throws Exception {

String context = new String(message.getPayload());

}

@Override

public void deliveryComplete(IMqttDeliveryToken token) {

// TODO Auto-generated method stub

}

@Override

public void connectionLost(Throwable cause) {

// TODO Auto-generated method stub

}

@Override

public void connectComplete(boolean reconnect, String serverURI) {

// TODO Auto-generated method stub

}

});

topic = client.getTopic(TOPIC);

//setWill方法,如果项目中需要知道客户端是否掉线可以调用该方法。设置最终端口的通知消息

options.setWill(topic, "close".getBytes(), 2, true);

client.connect(options);

// sendCon = "{\"temperature\":\"25\",\"humidity\":\"12\",\"light\":\"255\"}";//json格式

client.publish(TOPIC, content.getBytes(), 0, false);//推送数据到tb上

} catch (MqttException e) {

e.printStackTrace();

} catch (IllegalArgumentException e) {

e.printStackTrace();

} finally {

}

}

}

你可能感兴趣的:(board,java)