JLChen
2021-11-09 c584c193d5dd4290bcbeddd434e1d642db59eb13
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
package com.hdl.sdk.socket;
 
 
import com.hdl.sdk.socket.codec.IHandleMessage;
import com.hdl.sdk.socket.listener.ConnectStatusListener;
 
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
 
/**
 * Created by Tong on 2021/9/22.
 * socket配置
 */
public class SocketOptions {
 
    //设置读取缓存
    private int readMaxBufferSize = 512;
 
    //发送心跳包
    private boolean isEnabledHeartbeat = true;
 
    //心跳包
    private byte[] heartbeatData;
 
    //心跳包时间间隔
    private long heartbeatTimeInterval = 300L;
 
    //处理数据
    private IHandleMessage handleMessage;
 
    //监听状态
    private List<ConnectStatusListener> mConnectStatusListener;
 
    //最大重连次数,小于0无限次数,等于0不重连
    private int maxRetry = -1;
 
    private boolean isTcpNoDelay;
    private boolean isReuseAddress;
    //保持活动状态
    private boolean isKeepAlive;
    private boolean isOOBInline;
    private int sendBufferSize;
    private int receiveBufferSize;
    private int soTimeout;
    private boolean soLinger;
 
 
    public IHandleMessage getHandleMessage() {
        return handleMessage;
    }
 
    public void setHandleMessage(IHandleMessage handleMessage) {
        this.handleMessage = handleMessage;
    }
 
    public boolean isEnabledHeartbeat() {
        return isEnabledHeartbeat;
    }
 
    public void setEnabledHeartbeat(boolean enabledHeartbeat) {
        isEnabledHeartbeat = enabledHeartbeat;
    }
 
    public byte[] getHeartbeatData() {
        return heartbeatData;
    }
 
    public void setHeartbeatData(byte[] heartbeatData) {
        this.heartbeatData = heartbeatData;
    }
 
    public void setHeartbeatData(String heartbeatData) {
        try {
            this.heartbeatData = heartbeatData.getBytes("utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
 
    public long getHeartbeatTimeInterval() {
        return heartbeatTimeInterval;
    }
 
    public void setHeartbeatTimeInterval(long heartbeatTimeInterval) {
        this.heartbeatTimeInterval = heartbeatTimeInterval;
    }
 
    public void clearConnectStatusListener() {
        if (mConnectStatusListener != null && !mConnectStatusListener.isEmpty()) {
            mConnectStatusListener.clear();
        }
    }
 
    public void addConnectStatusListener(ConnectStatusListener connectStatusListener) {
        if (mConnectStatusListener == null) {
            mConnectStatusListener = new ArrayList<>();
        }
        mConnectStatusListener.add(connectStatusListener);
    }
 
    public void removeConnectStatusListener(ConnectStatusListener connectStatusListener) {
        if (mConnectStatusListener != null) {
            mConnectStatusListener.remove(connectStatusListener);
        }
    }
 
 
    public List<ConnectStatusListener> getConnectStatusListener() {
        return mConnectStatusListener;
    }
 
 
    public int getMaxRetry() {
        return maxRetry;
    }
 
    public void setMaxRetry(int maxRetry) {
        this.maxRetry = maxRetry;
    }
 
    public int getReadMaxBufferSize() {
        return readMaxBufferSize;
    }
 
    public void setReadMaxBufferSize(int readMaxBufferSize) {
        this.readMaxBufferSize = readMaxBufferSize;
    }
 
}