⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basecommlistener.java

📁 CoolFace是基于jxta的P2P系统
💻 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 + -