📄 clientdefaultcrbtconntemplet.java
字号:
package com.wireless.crbt.gwif.netty2;
import java.util.Timer;
import java.util.TimerTask;
import net.gleamynode.netty2.Message;
import net.gleamynode.netty2.Session;
import net.gleamynode.netty2.SessionListener;
import org.apache.log4j.Logger;
import com.wireless.gwif.socketconn.ByteMessage;
import com.wireless.crbt.gwif.global.*;
public abstract class ClientDefaultCrbtConnTemplet implements SessionListener{
protected Session session = null;
protected Timer timer = null; //定时器,若需要发送 下行信息则设置,否则置 NULL//定时器轮询时间
protected int controlSize=16; //滑动窗口大小,默认值为16
protected boolean idleFlag = false; //心跳包标志
protected Logger log = LoggerConstant.log;
private int period; //下发速度控制
public ClientDefaultCrbtConnTemplet(){
}
public void initialize(){
}
public void finalize(){
}
public void setSession(Session asession){
this.session = asession;
}
public void setLog(Logger log){
this.log = log;
}
public void setIdleFlag(boolean idleFlag){
this.idleFlag = idleFlag;
}
/**
* 建立连接
* @param session Session
*/
public void connectionEstablished(Session session) {
log.info("--- Connection established : " + session.getSocketAddress() + " ---");
//当物理连接建立成功后发送认证信息
processSendConnect();
}
/**
* 连接被关闭
* @param session Session
*/
public void connectionClosed(Session session) {
log.info("--- Connection closed : " + session.getSocketAddress() + " ---");
//处理连接中断
processClosed();
}
/**
* 收到信息
* @param session Session
* @param message Message
*/
public void messageReceived(Session session, Message message) {
ByteMessage clientMessage = (ByteMessage)message;
//对信息进行处理
process(clientMessage.getValue());
}
/**
* 信息被发送
* @param session Session
* @param message Message
*/
public void messageSent(Session session, Message message) {
}
/**
* 心跳响应
* @param session Session
*/
public void sessionIdle(Session session) {
//发送 ActiveTest 包
if( idleFlag ){
processSendActiveTest();
}
}
/**
* 异常捕获
* @param session Session
* @param cause Throwable
*/
public void exceptionCaught(Session session, Throwable cause) {
log.info("--- Exception Ocuur! : " + session.getSocketAddress() + " ---");
//处理异常信息
processException(cause);
}
/**
* 发送信息
* @param byteMessage byte[]
* @return boolean
*/
public boolean write(byte [] message){
ByteMessage byteMessage = new ByteMessage();
byteMessage.setValue(message);
return this.session.write(byteMessage);
}
public boolean isClosed(){
return this.session.isClosed();
}
public void setControlSize(int controlSize){
this.controlSize = controlSize;
}
public void setPeriod(int aperiod){
this.period = (1000/aperiod);
}
public int getPeriod(){
return this.period;
}
public synchronized void startSendT(){
if( timer == null ){
timer = new Timer(true);
timer.schedule(new TimerTask() {
public void run() {
processSend();
}
} , period, period);
}
}
public synchronized void stopSendT(){
if( timer != null ){
timer.cancel();
timer = null;
}
}
public abstract void processSendConnect();
public abstract void process(byte [] bytes);
public abstract void processSendActiveTest();
public abstract void processSend();
public abstract void processSendTermate();
public abstract void processException(Throwable cause);
public abstract void processClosed();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -