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

📄 cfpeerquerylistener.java

📁 CoolFace是基于jxta的P2P系统
💻 JAVA
字号:
package com.cn.darkblue.listener;

import java.util.Enumeration;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.cn.darkblue.entity.FriendInfo;
import com.cn.darkblue.entity.IFriendInfo;
import com.cn.darkblue.helper.IMsgScreen;
import com.cn.darkblue.helper.IPGResource;
import com.cn.darkblue.util.CFDefData;
import com.cn.darkblue.util.CFResource;
import com.cn.darkblue.util.CFUtil;

import net.jxta.discovery.DiscoveryEvent;
import net.jxta.discovery.DiscoveryListener;
import net.jxta.document.MimeMediaType;
import net.jxta.peergroup.PeerGroup;
import net.jxta.protocol.DiscoveryResponseMsg;
import net.jxta.protocol.PeerAdvertisement;
import net.jxta.protocol.PeerGroupAdvertisement;

public class CFPeerQueryListener implements DiscoveryListener{
private static final Log log = LogFactory.getLog(CFPeerQueryListener.class);
	
	PeerGroup parentPg = null;
	Map conditions = null;
	
	IPGResource pgres = null;
	
	public CFPeerQueryListener(PeerGroup peergroup){
		parentPg = peergroup;
	}
	public void init(Map condMap){
		conditions = condMap;
		pgres = (IPGResource)CFResource.getInstance().getJoinPGMap().get(parentPg);
	}
	
	public void discoveryEvent(DiscoveryEvent ev) {
		DiscoveryResponseMsg res = ev.getResponse();
		PeerAdvertisement peerAdv = res.getPeerAdvertisement();
		String name = "unknown";
		String descr = "";
		String id = "";
		if (peerAdv != null) {
			name = peerAdv.getName();
			id = peerAdv.getPeerID().toString();
		}
		String msg = " 获得一个发现回馈消息 [" + res.getResponseCount() + "] 来自于peer Name: " + name;
		log.info(msg + " ID:"+id);

		PeerAdvertisement pga = null;
		Object obj;
		IFriendInfo fInfo = null;
		Enumeration en = res.getAdvertisements();
		if (en != null) {
			while (en.hasMoreElements()) {
				obj = en.nextElement();
				if(obj instanceof PeerAdvertisement){
					pga = (PeerAdvertisement) obj;
					log.info(pga.getDocument(MimeMediaType.XMLUTF8).toString());
					name = pga.getName();
					descr = pga.getDescription();
					id = pga.getPeerGroupID().toString()+CFDefData.COMBO_SPSTR+pga.getPeerID().toString();
					
					if(CFUtil.checkConditions(conditions,name,descr,id)){
						fInfo = new FriendInfo();
						fInfo.setId(id);
						fInfo.setName(pga.getName());
						fInfo.setPeerAdv(pga);
						//fInfo.setState(1);
						pgres.getMemebers().put(id, fInfo);
					}
					
				}
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -