netty优化
This commit is contained in:
@@ -0,0 +1,169 @@
|
||||
package com.njcn.gather.detection.util.socket.config;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Socket连接配置管理类
|
||||
* 定义哪些requestId需要建立通道连接,以及IP/PORT配置
|
||||
*
|
||||
* @Author: hongawen
|
||||
* @Date: 2024/12/10
|
||||
*/
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "socket")
|
||||
public class SocketConnectionConfig {
|
||||
|
||||
/**
|
||||
* 程控源设备配置
|
||||
*/
|
||||
private SourceConfig source = new SourceConfig();
|
||||
|
||||
/**
|
||||
* 被检设备配置
|
||||
*/
|
||||
private DeviceConfig device = new DeviceConfig();
|
||||
|
||||
@Data
|
||||
public static class SourceConfig {
|
||||
/**
|
||||
* 程控源IP地址
|
||||
*/
|
||||
private String ip;
|
||||
|
||||
/**
|
||||
* 程控源端口号
|
||||
*/
|
||||
private Integer port;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class DeviceConfig {
|
||||
/**
|
||||
* 被检设备IP地址
|
||||
*/
|
||||
private String ip;
|
||||
|
||||
/**
|
||||
* 被检设备端口号
|
||||
*/
|
||||
private Integer port;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取程控源配置
|
||||
*/
|
||||
public SourceConfig getSource() {
|
||||
return source;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取被检设备配置
|
||||
*/
|
||||
public DeviceConfig getDevice() {
|
||||
return device;
|
||||
}
|
||||
|
||||
/**
|
||||
* 需要建立程控源通道的requestId集合
|
||||
* 这些requestId在发送消息时,如果程控源通道不存在,会自动建立连接
|
||||
*/
|
||||
private static final Set<String> SOURCE_CONNECTION_REQUEST_IDS = new HashSet<>(Arrays.asList(
|
||||
// 源通讯检测
|
||||
"yjc_ytxjy"
|
||||
// 可以根据实际业务需求添加更多requestId
|
||||
));
|
||||
|
||||
/**
|
||||
* 需要建立被检设备通道的requestId集合
|
||||
* 这些requestId在发送消息时,如果被检设备通道不存在,会自动建立连接
|
||||
*/
|
||||
private static final Set<String> DEVICE_CONNECTION_REQUEST_IDS = new HashSet<>(Arrays.asList(
|
||||
// 连接建立
|
||||
"yjc_sbtxjy",
|
||||
// ftp文件传送指令
|
||||
"FTP_SEND$01"
|
||||
// 可以根据实际业务需求添加更多requestId
|
||||
));
|
||||
|
||||
/**
|
||||
* 检查指定的requestId是否需要建立程控源连接
|
||||
*
|
||||
* @param requestId 请求ID
|
||||
* @return boolean true:需要建立连接, false:不需要建立连接
|
||||
*/
|
||||
public static boolean needsSourceConnection(String requestId) {
|
||||
return SOURCE_CONNECTION_REQUEST_IDS.contains(requestId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查指定的requestId是否需要建立被检设备连接
|
||||
*
|
||||
* @param requestId 请求ID
|
||||
* @return boolean true:需要建立连接, false:不需要建立连接
|
||||
*/
|
||||
public static boolean needsDeviceConnection(String requestId) {
|
||||
return DEVICE_CONNECTION_REQUEST_IDS.contains(requestId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加需要建立程控源连接的requestId
|
||||
* 支持运行时动态添加
|
||||
*
|
||||
* @param requestId 请求ID
|
||||
*/
|
||||
public static void addSourceConnectionRequestId(String requestId) {
|
||||
SOURCE_CONNECTION_REQUEST_IDS.add(requestId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加需要建立被检设备连接的requestId
|
||||
* 支持运行时动态添加
|
||||
*
|
||||
* @param requestId 请求ID
|
||||
*/
|
||||
public static void addDeviceConnectionRequestId(String requestId) {
|
||||
DEVICE_CONNECTION_REQUEST_IDS.add(requestId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除程控源连接requestId
|
||||
*
|
||||
* @param requestId 请求ID
|
||||
*/
|
||||
public static void removeSourceConnectionRequestId(String requestId) {
|
||||
SOURCE_CONNECTION_REQUEST_IDS.remove(requestId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除被检设备连接requestId
|
||||
*
|
||||
* @param requestId 请求ID
|
||||
*/
|
||||
public static void removeDeviceConnectionRequestId(String requestId) {
|
||||
DEVICE_CONNECTION_REQUEST_IDS.remove(requestId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有需要建立程控源连接的requestId集合(只读)
|
||||
*
|
||||
* @return Set<String> requestId集合
|
||||
*/
|
||||
public static Set<String> getSourceConnectionRequestIds() {
|
||||
return new HashSet<>(SOURCE_CONNECTION_REQUEST_IDS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有需要建立被检设备连接的requestId集合(只读)
|
||||
*
|
||||
* @return Set<String> requestId集合
|
||||
*/
|
||||
public static Set<String> getDeviceConnectionRequestIds() {
|
||||
return new HashSet<>(DEVICE_CONNECTION_REQUEST_IDS);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user