2026-06-24 f4bd1f3c89d906131495a0aca5aaf82966378510
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package cn.iocoder.yudao.module.iot.dal.dataobject.rule.config;
 
import lombok.Data;
 
/**
 * IoT WebSocket 配置 {@link IotAbstractDataSinkConfig} 实现类
 * <p>
 * 配置设备消息通过 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;
 
}