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 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 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; } }