| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | 
							- package com.its.common.cluster.vo;
 
- import com.its.common.cluster.utils.ClusterUtils;
 
- import io.netty.channel.Channel;
 
- import lombok.Data;
 
- import java.text.SimpleDateFormat;
 
- import java.util.Calendar;
 
- import java.util.Date;
 
- @Data
 
- public class ClusterNetState {
 
-     private int state;
 
-     private Channel channel;
 
-     private long connectCount;
 
-     private long lastRecvTime;
 
-     private long lastSendTime;
 
-     private int retryCount;
 
-     private Date connectTime;
 
-     private Date disconnectTime;
 
-     public ClusterNetState() {
 
-         init();
 
-     }
 
-     public void init() {
 
-         this.state = ClusterNET.CLOSED;
 
-         this.channel = null;
 
-         this.connectCount = 0;
 
-         this.lastRecvTime = 0;
 
-         this.lastSendTime = 0;
 
-         this.retryCount = 0;
 
-         this.connectTime = null;
 
-         this.disconnectTime = null;
 
-     }
 
-     public boolean isAlive() {
 
-         return (this.state != ClusterNET.CLOSED);
 
-     }
 
-     public void setLastRecvTime() {
 
-         this.lastRecvTime = System.currentTimeMillis();
 
-     }
 
-     public void setLastSendTime() {
 
-         this.lastSendTime = System.currentTimeMillis();
 
-     }
 
-     public void retry() {
 
-         this.retryCount++;
 
-     }
 
-     public void request() {
 
-         this.retryCount = 0;
 
-     }
 
-     public void connect(Channel channel) {
 
-         this.state = ClusterNET.LOGIN_WAIT;
 
-         this.channel = channel;
 
-         this.connectCount++;
 
-         this.connectTime = new Date();
 
-         this.retryCount = 0;
 
-         setLastRecvTime();
 
-         // channel 이 null 인 경우 나 자신의 정보를 저장하기위함(항상 통신이 정상이라고 판단하기 위해서)
 
-         if (channel == null) {
 
-             // 송신 및 전송시각을 초기 기동시각으로 설정하는 것과 같음
 
-             setLastRecvTime();
 
-             setLastSendTime();
 
-         }
 
-         loginOk();
 
-     }
 
-     public void loginOk() {
 
-         this.state = ClusterNET.DATA_TRANS;
 
-     }
 
-     public void disConnect() {
 
-         if (this.state != ClusterNET.CLOSED) {
 
-             this.disconnectTime = new Date();
 
-         }
 
-         this.state = ClusterNET.CLOSED;
 
-         this.channel = null;
 
-         this.retryCount = 0;
 
-     }
 
-     public void terminate() {
 
-         this.state = ClusterNET.TERMINATE;
 
-     }
 
-     public boolean isActive() {
 
-         return this.channel != null && this.channel.isActive();
 
-     }
 
-     private String timeToString(long timestamp) {
 
-         return ClusterUtils.timeToStringYmd(timestamp);
 
-     }
 
-     public String getLastRecvTimeString() {
 
-         return timeToString(this.lastRecvTime);
 
-     }
 
-     public String getLastSendTimeString() {
 
-         return timeToString(this.lastSendTime);
 
-     }
 
-     private String timeToString(Date dateTime) {
 
-         if (dateTime == null) {
 
-             return "1970-01-01 00:00:00";
 
-         }
 
-         Calendar cal = Calendar.getInstance();
 
-         cal.setTime(dateTime);
 
-         return (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(cal.getTime());
 
-     }
 
-     public String getConnectTimeString() {
 
-         return timeToString(this.connectTime);
 
-     }
 
-     public String getDisconnectTimeString() {
 
-         return timeToString(this.disconnectTime);
 
-     }
 
- }
 
 
  |