📄 cfpeerquerylistener.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 + -