add:优化
This commit is contained in:
parent
88f88807e2
commit
3a786fa2eb
|
|
@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
import net.maku.iot.communication.mqtt.factory.MqttMessageHandlerFactory;
|
import net.maku.iot.communication.mqtt.factory.MqttMessageHandlerFactory;
|
||||||
import net.maku.iot.communication.tcp.factory.TcpMessageHandlerFactory;
|
import net.maku.iot.communication.tcp.factory.TcpMessageHandlerFactory;
|
||||||
import net.maku.iot.communication.tcp.handler.ConnectionHandler;
|
import net.maku.iot.communication.tcp.handler.ConnectionHandler;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
|
@ -31,6 +32,9 @@ public class NettyServerConfig {
|
||||||
return new ConcurrentHashMap<>();
|
return new ConcurrentHashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public TcpMessageHandlerFactory tcpMessageHandlerFactory;
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public ServerBootstrap nettyServer(ConcurrentMap<String, Channel> deviceChannels) {
|
public ServerBootstrap nettyServer(ConcurrentMap<String, Channel> deviceChannels) {
|
||||||
ServerBootstrap bootstrap = new ServerBootstrap();
|
ServerBootstrap bootstrap = new ServerBootstrap();
|
||||||
|
|
@ -43,7 +47,7 @@ public class NettyServerConfig {
|
||||||
new StringDecoder(),
|
new StringDecoder(),
|
||||||
new StringEncoder(),
|
new StringEncoder(),
|
||||||
// new DeviceMsgHandler(deviceChannels), // 添加设备身份处理器
|
// new DeviceMsgHandler(deviceChannels), // 添加设备身份处理器
|
||||||
new ConnectionHandler(deviceChannels) // 添加设备连接处理器
|
new ConnectionHandler(deviceChannels,tcpMessageHandlerFactory) // 添加设备连接处理器
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -24,13 +24,12 @@ import java.util.concurrent.ConcurrentMap;
|
||||||
public class ConnectionHandler extends ChannelInboundHandlerAdapter {
|
public class ConnectionHandler extends ChannelInboundHandlerAdapter {
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private TcpMessageHandlerFactory tcpMessageHandlerFactory;
|
|
||||||
|
|
||||||
private final ConcurrentMap<String, Channel> deviceChannels;
|
private final ConcurrentMap<String, Channel> deviceChannels;
|
||||||
|
private final TcpMessageHandlerFactory tcpMessageHandlerFactory;
|
||||||
|
|
||||||
public ConnectionHandler(ConcurrentMap<String, Channel> deviceChannels) {
|
public ConnectionHandler(ConcurrentMap<String, Channel> deviceChannels,TcpMessageHandlerFactory tcpMessageHandlerFactory) {
|
||||||
this.deviceChannels = deviceChannels;
|
this.deviceChannels = deviceChannels;
|
||||||
|
this.tcpMessageHandlerFactory = tcpMessageHandlerFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,18 @@
|
||||||
package net.maku.iot.communication.tcp.handler;
|
package net.maku.iot.communication.tcp.handler;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.maku.iot.communication.mqtt.handler.MqttMessageHandler;
|
import net.maku.iot.communication.mqtt.handler.MqttMessageHandler;
|
||||||
import net.maku.iot.enums.DeviceTopicEnum;
|
import net.maku.iot.enums.DeviceTopicEnum;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description TODO
|
* @Description TODO
|
||||||
* @Author LSF
|
* @Author LSF
|
||||||
* @Date 2024/8/14 19:23
|
* @Date 2024/8/14 19:23
|
||||||
*/
|
*/
|
||||||
public class DeviceCommandResponseTCPMessageHandler implements MqttMessageHandler {
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class DeviceCommandResponseTCPMessageHandler implements TCPMessageHandler {
|
||||||
@Override
|
@Override
|
||||||
public boolean supports(String topic) {
|
public boolean supports(String topic) {
|
||||||
return DeviceTopicEnum.startsWith(topic, DeviceTopicEnum.COMMAND_RESPONSE.getTopic());
|
return DeviceTopicEnum.startsWith(topic, DeviceTopicEnum.COMMAND_RESPONSE.getTopic());
|
||||||
|
|
@ -17,5 +21,6 @@ public class DeviceCommandResponseTCPMessageHandler implements MqttMessageHandle
|
||||||
@Override
|
@Override
|
||||||
public void handle(String topic, String message) {
|
public void handle(String topic, String message) {
|
||||||
//TCP设备响应处理
|
//TCP设备响应处理
|
||||||
|
System.out.printf("TCP设备响应处理");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,18 @@
|
||||||
package net.maku.iot.communication.tcp.handler;
|
package net.maku.iot.communication.tcp.handler;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.maku.iot.communication.mqtt.handler.MqttMessageHandler;
|
import net.maku.iot.communication.mqtt.handler.MqttMessageHandler;
|
||||||
import net.maku.iot.enums.DeviceTopicEnum;
|
import net.maku.iot.enums.DeviceTopicEnum;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description TODO
|
* @Description TODO
|
||||||
* @Author LSF
|
* @Author LSF
|
||||||
* @Date 2024/8/14 19:24
|
* @Date 2024/8/14 19:24
|
||||||
*/
|
*/
|
||||||
public class DevicePropertyTCPMessageHandler implements MqttMessageHandler {
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class DevicePropertyTCPMessageHandler implements TCPMessageHandler {
|
||||||
@Override
|
@Override
|
||||||
public boolean supports(String topic) {
|
public boolean supports(String topic) {
|
||||||
return DeviceTopicEnum.startsWith(topic, DeviceTopicEnum.PROPERTY.getTopic());
|
return DeviceTopicEnum.startsWith(topic, DeviceTopicEnum.PROPERTY.getTopic());
|
||||||
|
|
@ -17,5 +21,6 @@ public class DevicePropertyTCPMessageHandler implements MqttMessageHandler {
|
||||||
@Override
|
@Override
|
||||||
public void handle(String topic, String message) {
|
public void handle(String topic, String message) {
|
||||||
//TCP设备属性上报处理
|
//TCP设备属性上报处理
|
||||||
|
System.out.printf("TCP设备属性上报处理");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user