package cn.iocoder.yudao.module.iot.dal.dataobject.rule.config; import lombok.Data; /** * IoT WebSocket 配置 {@link IotAbstractDataSinkConfig} 实现类 *
* 配置设备消息通过 WebSocket 协议发送到外部 WebSocket 服务器 * 支持 WebSocket (ws://) 和 WebSocket Secure (wss://) 连接 * * @author HUIHUI */ @Data public class IotDataSinkWebSocketConfig extends IotAbstractDataSinkConfig { /** * 默认连接超时时间(毫秒) */ public static final int DEFAULT_CONNECT_TIMEOUT_MS = 5000; /** * 默认发送超时时间(毫秒) */ public static final int DEFAULT_SEND_TIMEOUT_MS = 10000; /** * 默认心跳间隔时间(毫秒) */ public static final long DEFAULT_HEARTBEAT_INTERVAL_MS = 30000L; /** * 默认心跳消息内容 */ public static final String DEFAULT_HEARTBEAT_MESSAGE = "{\"type\":\"heartbeat\"}"; /** * 默认是否启用 SSL 证书验证 */ public static final boolean DEFAULT_VERIFY_SSL_CERT = true; /** * 默认数据格式 */ public static final String DEFAULT_DATA_FORMAT = "JSON"; /** * 默认重连间隔时间(毫秒) */ public static final long DEFAULT_RECONNECT_INTERVAL_MS = 5000L; /** * 默认最大重连次数 */ public static final int DEFAULT_MAX_RECONNECT_ATTEMPTS = 3; /** * 默认是否启用压缩 */ public static final boolean DEFAULT_ENABLE_COMPRESSION = false; /** * 默认消息发送重试次数 */ public static final int DEFAULT_SEND_RETRY_COUNT = 1; /** * 默认消息发送重试间隔(毫秒) */ public static final long DEFAULT_SEND_RETRY_INTERVAL_MS = 1000L; /** * WebSocket 服务器地址 * 例如:ws://localhost:8080/ws 或 wss://example.com/ws */ private String serverUrl; /** * 连接超时时间(毫秒) */ private Integer connectTimeoutMs = DEFAULT_CONNECT_TIMEOUT_MS; /** * 发送超时时间(毫秒) */ private Integer sendTimeoutMs = DEFAULT_SEND_TIMEOUT_MS; /** * 心跳间隔时间(毫秒),0 表示不启用心跳 */ private Long heartbeatIntervalMs = DEFAULT_HEARTBEAT_INTERVAL_MS; /** * 心跳消息内容(JSON 格式) */ private String heartbeatMessage = DEFAULT_HEARTBEAT_MESSAGE; /** * 子协议列表(逗号分隔) */ private String subprotocols; /** * 自定义请求头(JSON 格式) */ private String customHeaders; /** * 是否启用 SSL 证书验证(仅对 wss:// 生效) */ private Boolean verifySslCert = DEFAULT_VERIFY_SSL_CERT; /** * 数据格式:JSON 或 TEXT */ private String dataFormat = DEFAULT_DATA_FORMAT; /** * 重连间隔时间(毫秒) */ private Long reconnectIntervalMs = DEFAULT_RECONNECT_INTERVAL_MS; /** * 最大重连次数 */ private Integer maxReconnectAttempts = DEFAULT_MAX_RECONNECT_ATTEMPTS; /** * 是否启用压缩 */ private Boolean enableCompression = DEFAULT_ENABLE_COMPRESSION; /** * 消息发送重试次数 */ private Integer sendRetryCount = DEFAULT_SEND_RETRY_COUNT; /** * 消息发送重试间隔(毫秒) */ private Long sendRetryIntervalMs = DEFAULT_SEND_RETRY_INTERVAL_MS; }