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

📄 secchatlistener.java

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