📄 secchatlistener.java
字号:
package com.cn.darkblue.listener;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.cn.darkblue.helper.IMsgScreen;
import com.cn.darkblue.helper.IPGResource;
import com.cn.darkblue.util.CFResource;
import com.cn.darkblue.util.MessageUtil;
import net.jxta.endpoint.Message;
import net.jxta.endpoint.MessageElement;
import net.jxta.endpoint.OutgoingMessageEvent;
import net.jxta.endpoint.OutgoingMessageEventListener;
import net.jxta.endpoint.Message.ElementIterator;
import net.jxta.peergroup.PeerGroup;
import net.jxta.pipe.InputPipe;
import net.jxta.pipe.PipeMsgEvent;
import net.jxta.pipe.PipeMsgListener;
import net.jxta.util.JxtaBiDiPipe;
//安全聊天侦听器
public class SecChatListener implements ICFChatListener{
public static final String CHAT_COMM_SPACE = "ChatCommSpace";
public static final String CHAT_COMM_MSG = "ChatCommMsg";
// public static final String CHAT_QUEUE_KEY = "QueueKey";
// public static final String CHAT_LST_KEY = "ListenerKey";
private static final Log log = LogFactory.getLog(SecChatListener.class);
IMsgScreen screen = null;
PeerGroup group;
String friend ;
public SecChatListener(PeerGroup pg,String fri){
group = pg;
friend = fri;
}
public void pipeMsgEvent(PipeMsgEvent event) {
log.info("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
//System.out.println("SecChatListener Get a Message :"+event.getSource().toString());
System.out.println("SecChatListener Get a Message ");
Message message = event.getMessage();
ElementIterator mi = message.getMessageElements();
while(mi.hasNext()){
MessageElement str = (MessageElement)mi.next();
//System.out.println("value = "+MessageUtil.getStringFromMessage(message,""));
System.out.println("MessageElement name : "+str.getSequentialName());
}
Iterator ei = message.getMessageNamespaces();
while(ei.hasNext()){
String str = (String)ei.next();
//System.out.println("value = "+MessageUtil.getStringFromMessage(message,""));
System.out.println("ElementIterator Namespace : "+str);
}
System.out.println(" get the message: "+message.toString());
if (message == null) {
System.out.println("the message is null");
try{
System.out.println("000000000000000000");
// IPGResource pgres = (IPGResource)CFResource.getInstance().getJoinPGMap().get(group);
// JxtaBiDiPipe pipe = (JxtaBiDiPipe)pgres.getOutputPipes().get(friend);
// message = pipe.getMessage(0);
System.out.println("11111111111111111");
}catch(Exception e){
e.printStackTrace();
}
//return;
}
//log.info("消息:"+message.toString());
//MessageElement mes = message.getMessageElement(CHAT_COMM_SPACE, CHAT_COMM_MSG);
String mes = null;
try{
mes = (String)MessageUtil.getStringFromMessage(message,SecChatListener.CHAT_COMM_SPACE,
SecChatListener.CHAT_COMM_MSG );//CHAT_COMM_SPACE, CHAT_COMM_MSG);
System.out.println(SecChatListener.CHAT_COMM_SPACE +" : "+SecChatListener.CHAT_COMM_MSG+ " : "+mes);
}catch(Exception e){
e.printStackTrace();
}
System.out.println("the message String is = "+mes);
// if(screen!=null)
// screen.println(mes.toString());
// else{
if(mes !=null ){
IPGResource pgres = (IPGResource)CFResource.getInstance().getJoinPGMap().get(group);
HashMap map = pgres.getMsgQueues();
Object mobj = map.get(friend);
Queue queue;
System.out.println(friend+" sayed: "+mes);
if(mobj==null){
queue = new ConcurrentLinkedQueue();
map.put(friend, queue);
}else
queue = (Queue)mobj;
queue.add(mes);
}
}
public PeerGroup getPeerGroup() {
return group;
}
public IMsgScreen getScreen() {
return screen;
}
public void setPeerGroup(PeerGroup pg) {
group = pg;
}
public void setScreen(IMsgScreen scr) {
screen = scr;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -