亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? groupbasecommlistener.java

?? CoolFace是基于jxta的P2P系統
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package com.cn.darkblue.listener;

import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.jobs.Job;

import com.cn.darkblue.entity.CFPipeAdvertisement;

import com.cn.darkblue.helper.GroupHelper;
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 com.cn.darkblue.util.MessageUtil;
import com.cn.darkblue.util.SysUtil;


import net.jxta.document.Advertisement;
import net.jxta.document.AdvertisementFactory;
import net.jxta.document.MimeMediaType;
import net.jxta.document.StructuredDocumentFactory;
import net.jxta.document.StructuredTextDocument;
import net.jxta.document.TextElement;
import net.jxta.endpoint.Message;
import net.jxta.id.IDFactory;
import net.jxta.impl.id.UUID.PipeID;

import net.jxta.peer.PeerID;
import net.jxta.peergroup.PeerGroup;
import net.jxta.pipe.InputPipe;
import net.jxta.pipe.OutputPipe;
import net.jxta.pipe.PipeMsgEvent;

import net.jxta.pipe.PipeService;
import net.jxta.protocol.PipeAdvertisement;
import net.jxta.util.JxtaBiDiPipe;
import net.jxta.util.JxtaServerPipe;

public class GroupBaseCommListener implements ICFChatListener {
	private static final Log log = LogFactory.getLog(GroupBaseCommListener.class); 
	
	public static final String BASE_COMM_NAMESPACE = "Base_Comm";
	public static final String PUB_NAME_STR = "Peer_publish_name";
	public static final String REQ_COMM_STR = "request_Comm";
	public static final String RES_COMM_STR = "Response_Comm";
	public static final String RES_CMD_STR = "Cmd_Comm";
	public static final String MD5_COMM_STR = "MD5_Authentication";
	
	public static final String CHAT_STR = "Chat_Message";
	public static final String BASE_COMM_KEY = "BaseCommKey";
	
	public static final int CHAT_CMD = 0;//請求聊天命令碼
	public static final int CHAT_ADV_CMD = 99;//廣告傳遞命令碼
	public static final int CHAT_PGALL_CMD = -1;//群組信息命令碼
	
	int chat_state = 0;//0 表示接收并提醒 ,1 接收但不提醒 ,2 不接收
	String name = "";//GroupId--peerId
	PeerGroup pg = null;
	IMsgScreen screen = null;
	
	//String ctName = "";
	
	public GroupBaseCommListener(PeerGroup pg,IMsgScreen srn){
		this.pg = pg;
		screen = srn;
		name = pg.getPeerGroupID().toString()+CFDefData.COMBO_SPSTR+pg.getPeerID().toString();

	}
	
	public void pipeMsgEvent(PipeMsgEvent event) {
		log.info("已經接收到消息,來自于:"+event.getSource().toString());
	    log.info("管道ID:"+event.getPipeID());
	    
	    Message message = event.getMessage();
	    if (message == null) {
            return;
        }
	    System.out.println("message = "+message);
	    
	    String sender = MessageUtil.getStringFromMessage(message,BASE_COMM_NAMESPACE, PUB_NAME_STR);//發送者
	    String requester = MessageUtil.getStringFromMessage(message,BASE_COMM_NAMESPACE, REQ_COMM_STR);//被請求者
	    //String response = MessageUtil.getStringFromMessage(message,BASE_COMM_NAMESPACE, RES_COMM_STR);//回饋信息
	    int cmd = MessageUtil.getIntegerFromMessage(message,BASE_COMM_NAMESPACE, RES_CMD_STR);//命令信息 值,1,2,3,4。。。

	    //MessageElement md5 = message.getMessageElement(BASE_COMM_NAMESPACE, MD5_COMM_STR);//加密信息
	    
	    System.out.println("name="+name);
	    System.out.println("sender="+sender);
	    System.out.println("requester="+requester);
	    System.out.println("cmd="+cmd);
	    
	    String chat = MessageUtil.getStringFromMessage(message,BASE_COMM_NAMESPACE, CHAT_STR);
	    if(!name.equals(sender)){//丟棄自己發送的
	    	if(requester!=null){
	    		if(name.equals(requester)){//屬于自己的請求
    				switch(cmd){
    				case CHAT_CMD://應答請求 創建BIDE通訊管道Server 端
    					PipeAdvertisement adv = createChatBidiPipe(sender);
    					if(adv!=null){
    						IPGResource pgres = (IPGResource)CFResource.getInstance().getJoinPGMap().get(pg);
    						OutputPipe output = (OutputPipe)pgres.getOutputPipes().get(GroupHelper.PIPE_OUT_KEY);
    						//TODO if(output==null)如果沒有將新建output
    						System.out.println("oooooooooooo isnull = "+(output==null)+" "+output);
    						sendAdvertisement(output,adv,name,sender);
    					}
    					break;
    				case CHAT_ADV_CMD://取得回饋 創建BIDE通訊管道連接端
    					PipeAdvertisement advr = null;
    					try{
    						//Object obj = MessageUtil.getObjectFromMessage(message, BASE_COMM_NAMESPACE, RES_COMM_STR);
    						System.out.println("VVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ");
    						InputStream sadr = MessageUtil.getInputStreamFromMessage(message, BASE_COMM_NAMESPACE, RES_COMM_STR);
    						try{
    						if(sadr!=null){
    							
    							advr = (PipeAdvertisement)AdvertisementFactory.newAdvertisement(MimeMediaType.XMLUTF8,sadr);
    							/*
    							StructuredTextDocument doc = (StructuredTextDocument)
    			                StructuredDocumentFactory.newStructuredDocument(MimeMediaType.XMLUTF8, sadr);
    							advr = (PipeAdvertisement)
    					        AdvertisementFactory.newAdvertisement(PipeAdvertisement.getAdvertisementType());
    				
    							Enumeration elements = doc.getChildren();

    					        while (elements.hasMoreElements()) {
    					            TextElement elem = (TextElement) elements.nextElement();
    					            if("Id".equalsIgnoreCase(elem.getName())){
    					            	System.out.println(elem.getTextValue());
    					            	PipeID pipeID = null;
    						            try {
    						                pipeID = (PipeID) IDFactory.fromURI(new URI(elem.getTextValue()));
    						                advr.setPipeID(pipeID);
    						            } catch (URISyntaxException use) {
    						                use.printStackTrace();
    						            }
    					            }
    								if("Name".equalsIgnoreCase(elem.getName())){
    									advr.setName(elem.getTextValue());  
    									System.out.println(elem.getTextValue());
    								}
    								
    								if("Type".equalsIgnoreCase(elem.getName())){
    									advr.setType(elem.getTextValue());
    									System.out.println(elem.getTextValue());
    								}
    					            System.out.println("name= "+elem.getName());
    					            System.out.println("key= "+elem.getKey());
    					        }*/
    						}
    						}catch(Exception e){
    							e.printStackTrace();
    						}
    						
    						System.out.println("RRRRRRRRRRRRRR = "+advr.getDocument(MimeMediaType.XMLUTF8));
    					}catch(Exception e){
    						log.error(e.getMessage());
    						e.printStackTrace();
    					}
    					
    					if(advr!=null){
//    						createIn(advr,sender);
//    						createOut(advr,sender);
    						conBidiPipe(advr,sender);
    					}
    					break;
					}
	    		}
	    	}
	    }
	    if(chat!=null && !"".equals(chat)){
	    	IPGResource pgres = (IPGResource)CFResource.getInstance().getJoinPGMap().get(pg);
	    	HashMap map = pgres.getMsgQueues();
	    	Queue queue = (Queue)map.get(pg);
	    	if(queue == null) {
	    		queue = new ConcurrentLinkedQueue();
	    		map.put(pg, queue);
	    	}
	    	queue.add(chat);
	    }
	    
//	    if(chat!=null && !"".equals(chat))
//	    	if(screen!=null)
//	    		screen.println(chat);
	}
	/**
	 * 尚未使用
	 * */
	private void createIn(PipeAdvertisement advr,String sender){
		PipeService pipsrv = pg.getPipeService();
		SecChatListener cl = new SecChatListener(pg,sender);
		try{
			InputPipe input = pipsrv.createInputPipe(advr, cl);//
			IPGResource pgres = (IPGResource)CFResource.getInstance().getJoinPGMap().get(pg);
	        pgres.getInputPipes().put(sender, input);
	        pgres.getInputListener().put(sender, cl);
		}catch(Exception e){
			log.error(e.getMessage());
		}
	}
	/**
	 * 尚未使用
	 * */
	private void createOut(PipeAdvertisement advr,String sender){
		PipeService pipsrv = pg.getPipeService();
		try{
			OutputPipe output = pipsrv.createOutputPipe(advr, 1000);//
			
			IPGResource pgres = (IPGResource)CFResource.getInstance().getJoinPGMap().get(pg);
	        pgres.getOutputPipes().put(sender, output);
		}catch(Exception e){
			log.error(e.getMessage());
		}
	}
	
	private void conBidiPipe(PipeAdvertisement advr,String chater){
		
		try{
			//pipe.setReliable(true);
			SecChatListener cl = new SecChatListener(pg,chater);
			JxtaBiDiPipe pipe;
			pipe = new JxtaBiDiPipe();
			
//			pipe.setReliable(true);
//			pipe.setMessageListener(cl);
//			pipe.connect(pg, advr);

			pipe.connect(pg, (PeerID) IDFactory.fromURI(new URI(SysUtil.getComboDescription(chater))), advr, 1000*60, cl, false);
			
			System.out.println("the PIPD SDV:\n"+pipe.getPipeAdvertisement().getDocument(MimeMediaType.XMLUTF8).toString());

			System.out.println("Please wait ...........");

			pipe.setPipeEventListener(new CFPipeEventListener());

	            
            IPGResource pgres = (IPGResource)CFResource.getInstance().getJoinPGMap().get(pg);
			
			pgres.getOutputPipes().put(chater, pipe);
            pgres.getInputListener().put(chater, cl);  

			/*
            Object obj = pgres.getSendQueues().get(chater);
            if(obj!=null){
            	Queue que = (Queue)obj;
            	Object sendm = que.remove();
            	while(sendm!=null){
            		Message message;
                	if(sendm instanceof Message)
                		message = (Message)sendm;
                	else{
                		message = new Message();
                		MessageUtil.addStringToMessage(message, SecChatListener.CHAT_COMM_SPACE, 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 91国模大尺度私拍在线视频| 久热成人在线视频| 亚洲无人区一区| 亚洲日本va在线观看| 亚洲色图清纯唯美| 一二三四社区欧美黄| 午夜精品爽啪视频| 日本亚洲一区二区| 欧美aaaaaa午夜精品| 美女视频黄频大全不卡视频在线播放| 亚洲18女电影在线观看| 亚洲chinese男男1069| 亚洲国产精品自拍| 麻豆精品蜜桃视频网站| 国产最新精品精品你懂的| 国模一区二区三区白浆| 国产美女av一区二区三区| 国产米奇在线777精品观看| 国产精品一区二区在线观看不卡| 国产成人精品三级| 色吧成人激情小说| 9191久久久久久久久久久| 欧美一区二区日韩| 久久久影视传媒| 亚洲精品成人悠悠色影视| 亚洲午夜电影在线| 久久草av在线| 91女厕偷拍女厕偷拍高清| 欧美主播一区二区三区| 欧美成人激情免费网| 国产精品国产三级国产专播品爱网| 樱花草国产18久久久久| 久久99精品久久久| 91丨porny丨蝌蚪视频| 日韩午夜精品电影| 中文字幕亚洲成人| 精品一区二区三区在线观看 | 18涩涩午夜精品.www| 亚洲午夜久久久久久久久电影院| 国产乱理伦片在线观看夜一区| 一本色道a无线码一区v| 精品国产在天天线2019| 亚洲黄色小说网站| 精品一二三四区| 欧美日韩久久一区| 亚洲欧洲无码一区二区三区| 麻豆精品新av中文字幕| 欧美四级电影在线观看| 亚洲国产精品激情在线观看| 另类小说一区二区三区| 欧美综合一区二区三区| 国产精品传媒视频| 国产一区二区伦理片| 欧美一区二区三区四区久久| 一区二区三区小说| 99视频有精品| 久久九九久久九九| 九色|91porny| 欧美一区二区视频在线观看2020| 亚洲精品乱码久久久久久| 久久成人免费电影| 日韩午夜电影av| 午夜精品视频一区| 色婷婷久久99综合精品jk白丝| 国产欧美一区二区精品性| 久久国产夜色精品鲁鲁99| 在线成人高清不卡| 首页亚洲欧美制服丝腿| 色系网站成人免费| 亚洲精品ww久久久久久p站| kk眼镜猥琐国模调教系列一区二区| 久久影院视频免费| 国产一区二区电影| 久久久久久久网| 国产精品一区专区| 欧美精品一区二区三区蜜桃| 久久99久久99精品免视看婷婷| 欧美日韩免费一区二区三区视频| 亚洲一区二区三区四区的| 99精品视频在线观看| 亚洲欧美日韩小说| 欧洲一区在线观看| 亚洲主播在线播放| 欧美视频一区二区三区四区| 亚洲国产视频直播| 欧美日韩国产另类一区| 蜜臀国产一区二区三区在线播放| 日韩欧美国产午夜精品| 久久精品国产99国产| 国产性做久久久久久| 国产福利精品导航| 亚洲九九爱视频| 欧美人牲a欧美精品| 日本亚洲天堂网| 欧美精品一区二区三区四区| 成人免费高清视频在线观看| 亚洲欧美国产三级| 欧美日韩欧美一区二区| 国产精品自在在线| 一区二区在线免费| 在线成人av影院| 不卡一卡二卡三乱码免费网站 | 91亚洲精品久久久蜜桃网站| 一区二区久久久久久| 欧美一级夜夜爽| 国产mv日韩mv欧美| 亚洲综合一区二区| 欧美精品一区二区久久婷婷| 99精品视频一区| 日韩av电影免费观看高清完整版在线观看| 欧美videofree性高清杂交| 国产91在线观看丝袜| 午夜精品一区二区三区免费视频 | 99re8在线精品视频免费播放| 亚洲一级二级三级| 久久精品人人做人人爽人人| 99精品国产视频| 首页欧美精品中文字幕| 亚洲少妇最新在线视频| 精品国产区一区| 欧美中文字幕亚洲一区二区va在线 | 午夜私人影院久久久久| 久久免费的精品国产v∧| 欧美午夜精品久久久久久超碰| 久久av中文字幕片| 亚洲欧美一区二区久久| 国产亚洲欧美激情| 日韩一区二区在线免费观看| 日本久久一区二区三区| 国产一区二区在线视频| 一区二区三区成人| 国产精品三级电影| 日韩欧美一区二区在线视频| 色婷婷综合视频在线观看| 国产精品66部| 精品一区精品二区高清| 午夜精品久久久久久久99水蜜桃| 亚洲品质自拍视频网站| 国产精品水嫩水嫩| 精品第一国产综合精品aⅴ| 9191成人精品久久| 欧美日韩精品一区二区在线播放 | 亚洲国产欧美在线人成| 国产精品久久久久aaaa樱花 | 欧美视频日韩视频| 91精品国模一区二区三区| 亚洲欧洲日韩av| 国产亚洲成aⅴ人片在线观看 | 美女网站视频久久| 亚洲精品国产无天堂网2021| 在线观看欧美精品| 国产精品影视网| 国产河南妇女毛片精品久久久| 奇米色777欧美一区二区| 亚洲福利一区二区| 五月天欧美精品| 日欧美一区二区| 青青草国产精品97视觉盛宴| 免费视频一区二区| 精品一二线国产| 国产一区二区不卡在线| 国产成人精品免费一区二区| 成人精品高清在线| 国产老女人精品毛片久久| 精品写真视频在线观看| 激情都市一区二区| 粉嫩一区二区三区在线看| 成人18视频日本| 在线观看av一区| 欧美一区永久视频免费观看| 日韩色视频在线观看| 久久一区二区三区国产精品| 久久久国产精品麻豆| 久久久久97国产精华液好用吗| 中文字幕免费一区| 亚洲激情六月丁香| 亚洲国产一二三| 久久精品国产免费| 成人免费观看av| 7777精品久久久大香线蕉| 日韩精品影音先锋| 中文字幕中文字幕一区| 亚洲国产精品一区二区久久恐怖片| 免费在线视频一区| 成人激情视频网站| 欧美区一区二区三区| 久久这里只精品最新地址| 亚洲免费电影在线| 久久成人18免费观看| 色综合久久中文综合久久97| 日韩区在线观看| 亚洲私人影院在线观看| 免费一级欧美片在线观看| 91蝌蚪porny九色| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲人一二三区| 国产电影精品久久禁18| 在线不卡免费欧美| 综合久久一区二区三区|