📄 basecommlistener.java
字号:
package com.cn.darkblue.listener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.cn.darkblue.entity.IRequestCMD;
import com.cn.darkblue.entity.RequestCMD;
import com.cn.darkblue.helper.IMsgScreen;
import com.cn.darkblue.util.CFResource;
import net.jxta.endpoint.Message;
import net.jxta.endpoint.MessageElement;
import net.jxta.peergroup.PeerGroup;
import net.jxta.pipe.InputPipe;
import net.jxta.pipe.PipeMsgEvent;
import net.jxta.pipe.PipeMsgListener;
public class BaseCommListener implements PipeMsgListener{
private static final Log log = LogFactory.getLog(BaseCommListener.class);
public static final String BASE_COMM_SPACE = "BaseCommSpace";
public static final String BASE_COMM_CMD = "BaseCommCmd";
public static final String BASE_COMM_MSG = "BaseCommMsg";
public static final String BASE_TIMEOUT = "BaseTimeout";
// public static final String BASE_PONG_TAG = "BasePongTag";
// public static final String BASE_SRCNAME_TAG = "BaseSrcnameTag";
IMsgScreen screen = null;
PeerGroup group;
public BaseCommListener(PeerGroup pg){
group = pg;
}
public BaseCommListener(PeerGroup pg,IMsgScreen srn){
screen = srn;
group = pg;
}
public void pipeMsgEvent(PipeMsgEvent event) {
log.info("已经接收到消息,来自于: "+event.getSource().toString()+" : "+event.getPipeID());
Object obj = event.getSource();
InputPipe evts;
Message message = event.getMessage();
if (message == null) {
return;
}
log.info("消息:"+message.toString());
MessageElement mes = message.getMessageElement(BASE_COMM_SPACE, BASE_COMM_MSG);
MessageElement cmd = message.getMessageElement(BASE_COMM_SPACE, BASE_COMM_CMD);
if(mes != null){
log.info("收到一条信息: " + mes.toString());
if(screen!=null)
screen.println(mes.toString());
}
if(cmd != null){//讲命令放入队列 由指定线程处理
log.info("CMD:" + cmd.toString());
IRequestCMD rcmd = new RequestCMD();
rcmd.setCmd(cmd.toString());
rcmd.setPeerGroup(group);
MessageElement timeout = message.getMessageElement(BASE_COMM_SPACE, BASE_TIMEOUT);
if(timeout!=null){
int i = 0;
try{
i = Integer.parseInt(timeout.toString());
}catch(Exception e){
i = 0;
}
if(i>0){
long time = System.currentTimeMillis()+ i*1000L ;
rcmd.setTimeout(time);
}
}
CFResource.getInstance().getCMDqueue().add(rcmd);
}
}
public IMsgScreen getScreen() {
return screen;
}
public void setScreen(IMsgScreen screen) {
this.screen = screen;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -