|
|
@ -11,16 +11,18 @@ import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.context.annotation.Configuration; |
|
|
|
import org.springframework.context.annotation.Configuration; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.Random; |
|
|
|
|
|
|
|
|
|
|
|
@Configuration |
|
|
|
@Configuration |
|
|
|
@Slf4j |
|
|
|
@Slf4j |
|
|
|
public class MqttProviderConfig { |
|
|
|
public class MqttProviderConfig { |
|
|
|
@Value("${spring.mqtt.username}") |
|
|
|
// @Value("${spring.mqtt.username}")
|
|
|
|
private String username; |
|
|
|
private String username; |
|
|
|
|
|
|
|
|
|
|
|
@Value("${spring.mqtt.password}") |
|
|
|
// @Value("${spring.mqtt.password}")
|
|
|
|
private String password; |
|
|
|
private String password; |
|
|
|
|
|
|
|
|
|
|
|
@Value("${spring.mqtt.url}") |
|
|
|
// @Value("${spring.mqtt.url}")
|
|
|
|
private String hostUrl; |
|
|
|
private String hostUrl; |
|
|
|
|
|
|
|
|
|
|
|
/* @Value("${spring.mqtt.client.id}") |
|
|
|
/* @Value("${spring.mqtt.client.id}") |
|
|
@ -58,7 +60,7 @@ public class MqttProviderConfig { |
|
|
|
MqttConnectOptions options = new MqttConnectOptions(); |
|
|
|
MqttConnectOptions options = new MqttConnectOptions(); |
|
|
|
//是否清空session,设置false表示服务器会保留客户端的连接记录(订阅主题,qos),客户端重连之后能获取到服务器在客户端断开连接期间推送的消息
|
|
|
|
//是否清空session,设置false表示服务器会保留客户端的连接记录(订阅主题,qos),客户端重连之后能获取到服务器在客户端断开连接期间推送的消息
|
|
|
|
//设置为true表示每次连接服务器都是以新的身份
|
|
|
|
//设置为true表示每次连接服务器都是以新的身份
|
|
|
|
options.setCleanSession(true); |
|
|
|
options.setCleanSession(false); |
|
|
|
//设置连接用户名
|
|
|
|
//设置连接用户名
|
|
|
|
options.setUserName(username); |
|
|
|
options.setUserName(username); |
|
|
|
//设置连接密码
|
|
|
|
//设置连接密码
|
|
|
@ -67,6 +69,8 @@ public class MqttProviderConfig { |
|
|
|
options.setConnectionTimeout(100); |
|
|
|
options.setConnectionTimeout(100); |
|
|
|
//设置心跳时间 单位为秒,表示服务器每隔 1.5*20秒的时间向客户端发送心跳判断客户端是否在线
|
|
|
|
//设置心跳时间 单位为秒,表示服务器每隔 1.5*20秒的时间向客户端发送心跳判断客户端是否在线
|
|
|
|
options.setKeepAliveInterval(20); |
|
|
|
options.setKeepAliveInterval(20); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options.setAutomaticReconnect(false); |
|
|
|
// 设置遗嘱消息的话题,若客户端和服务器之间的连接意外断开,服务器将发布客户端的遗嘱信息
|
|
|
|
// 设置遗嘱消息的话题,若客户端和服务器之间的连接意外断开,服务器将发布客户端的遗嘱信息
|
|
|
|
// options.setWill("willTopic",(clientId + "与服务器断开连接").getBytes(),0,false);
|
|
|
|
// options.setWill("willTopic",(clientId + "与服务器断开连接").getBytes(),0,false);
|
|
|
|
//设置回调
|
|
|
|
//设置回调
|
|
|
@ -88,7 +92,7 @@ public class MqttProviderConfig { |
|
|
|
MqttMessage mqttMessage = new MqttMessage(); |
|
|
|
MqttMessage mqttMessage = new MqttMessage(); |
|
|
|
mqttMessage.setQos(qos); |
|
|
|
mqttMessage.setQos(qos); |
|
|
|
mqttMessage.setRetained(retained); |
|
|
|
mqttMessage.setRetained(retained); |
|
|
|
mqttMessage.setPayload(message.getBytes("UTF-8")); |
|
|
|
mqttMessage.setPayload(message.getBytes()); |
|
|
|
// 主题的目的地,用于发布/订阅信息
|
|
|
|
// 主题的目的地,用于发布/订阅信息
|
|
|
|
MqttTopic mqttTopic = client.getTopic(topic); |
|
|
|
MqttTopic mqttTopic = client.getTopic(topic); |
|
|
|
//提供一种机制来跟踪消息的传递进度
|
|
|
|
//提供一种机制来跟踪消息的传递进度
|
|
|
@ -106,10 +110,6 @@ public class MqttProviderConfig { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) { |
|
|
|
|
|
|
|
System.out.println(sendPrinterRrCodeBytest("1213131", 1)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static byte[] sendPrinterRrCodeBytest(String printText, int pageCount) { |
|
|
|
public static byte[] sendPrinterRrCodeBytest(String printText, int pageCount) { |
|
|
|
try { |
|
|
|
try { |
|
|
|
byte[] by = printText.getBytes(); |
|
|
|
byte[] by = printText.getBytes(); |
|
|
|