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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dispatcher.java

?? Java下Comet的實現(xiàn)框架Pushlet例子。 實現(xiàn)實時推送數(shù)據(jù)到客戶端。 服務(wù)器每隔30-500MS產(chǎn)生一個隨機數(shù)
?? JAVA
字號:
// Copyright (c) 2000 Just Objects B.V. <just@justobjects.nl>
// Distributable under LGPL license. See terms of license at gnu.org.

package nl.justobjects.pushlet.core;

import nl.justobjects.pushlet.util.Log;

/**
 * Routes Events to Subscribers.
 *
 * @author Just van den Broecke - Just Objects &copy;
 * @version $Id: Dispatcher.java,v 1.8 2007/11/23 14:33:07 justb Exp $
 */
public class Dispatcher implements Protocol, ConfigDefs {
	/**
	 * Singleton pattern:  single instance.
	 */
	private static Dispatcher instance;

	static {
		try {
			instance = (Dispatcher) Config.getClass(DISPATCHER_CLASS, "nl.justobjects.pushlet.core.Dispatcher").newInstance();
			Log.info("Dispatcher created className=" + instance.getClass());
		} catch (Throwable t) {
			Log.fatal("Cannot instantiate Dispatcher from config", t);
		}
	}

	/**
	 * Singleton pattern with factory method: protected constructor.
	 */
	protected Dispatcher() {
	}

	/**
	 * Singleton pattern: get single instance.
	 */
	public static Dispatcher getInstance() {
		return instance;
	}

	/**
	 * Send event to all subscribers.
	 */
	public synchronized void broadcast(Event event) {
		// Get active sessions
		Session[] sessions = getSessions();

		// Send Event to all Subscribers
		for (int i = 0; i < sessions.length; i++) {

			// Snapshot array may not be filled entirely.
			if (sessions[i] == null) {
				break;
			}
			sessions[i].getSubscriber().onEvent((Event) event.clone());
		}
	}

	/**
	 * Send event to subscribers matching Event subject.
	 */
	public synchronized void multicast(Event event) {
		// Get snapshot active sessions
		Session[] sessions = getSessions();

		// Send Event to all Subscribers whose Subject match Event
		Event clonedEvent = null;
		Subscription subscription = null;
		Subscriber subscriber = null;
		for (int i = 0; i < sessions.length; i++) {

			// Snapshot array may not be filled entirely.
			if (sessions[i] == null) {
				break;
			}

			subscriber = sessions[i].getSubscriber();

			// Send only if the subscriber's criteria
			// match the event.
			if ((subscription = subscriber.match(event)) != null) {
				// Personalize event
				clonedEvent = (Event) event.clone();

				// Set subscription id and optional label
				clonedEvent.setField(P_SUBSCRIPTION_ID, subscription.getId());
				if (subscription.getLabel() != null) {
					event.setField(P_SUBSCRIPTION_LABEL, subscription.getLabel());
				}

				subscriber.onEvent(clonedEvent);
			}
		}

	}

	/**
	 * Send event to specific subscriber.
	 */
	public synchronized void unicast(Event event, String aSessionId) {
		// Get subscriber to send event to
		Session session = SessionManager.getInstance().getSession(aSessionId);
		if (session == null) {
			Log.warn("unicast: session with id=" + aSessionId + " does not exist");
			return;
		}

		// Send Event to subscriber.
		session.getSubscriber().onEvent((Event) event.clone());
	}

	/**
	 * Start Dispatcher.
	 */
	public void start() {
		Log.info("Dispatcher started");
	}

	/**
	 * Stop Dispatcher.
	 */
	public void stop() {
		// Send abort control event to all subscribers.
		Log.info("Dispatcher stopped: broadcast abort to all subscribers");
		broadcast(new Event(E_ABORT));
	}

	private Session[] getSessions() {
		return SessionManager.getInstance().getSnapshot();
	}
}

/*
 * $Log: Dispatcher.java,v $
 * Revision 1.8  2007/11/23 14:33:07  justb
 * core classes now configurable through factory
 *
 * Revision 1.7  2005/02/28 12:45:59  justb
 * introduced Command class
 *
 * Revision 1.6  2005/02/28 09:14:55  justb
 * sessmgr/dispatcher factory/singleton support
 *
 * Revision 1.5  2005/02/21 16:59:06  justb
 * SessionManager and session lease introduced
 *
 * Revision 1.4  2005/02/21 11:50:46  justb
 * ohase1 of refactoring Subscriber into Session/Controller/Subscriber
 *
 * Revision 1.3  2005/02/18 12:36:47  justb
 * changes for renaming and configurability
 *
 * Revision 1.2  2005/02/18 10:07:23  justb
 * many renamings of classes (make names compact)
 *
 * Revision 1.1  2005/02/18 09:54:15  justb
 * refactor: rename Publisher Dispatcher and single Subscriber class
 *
 * Revision 1.14  2005/02/16 14:39:34  justb
 * fixed leave handling and added "poll" mode
 *
 * Revision 1.13  2004/10/24 20:50:35  justb
 * refine subscription with label and sending sid and label on events
 *
 * Revision 1.12  2004/10/24 12:58:18  justb
 * revised client and test classes for new protocol
 *
 * Revision 1.11  2004/09/26 21:39:43  justb
 * allow multiple subscriptions and out-of-band requests
 *
 * Revision 1.10  2004/09/20 22:01:38  justb
 * more changes for new protocol
 *
 * Revision 1.9  2004/09/03 22:35:37  justb
 * Almost complete rewrite, just checking in now
 *
 * Revision 1.8  2004/08/13 23:36:05  justb
 * rewrite of Pullet into Pushlet "pull" mode
 *
 * Revision 1.7  2004/08/12 13:18:54  justb
 * cosmetic changes
 *
 * Revision 1.6  2004/03/10 15:45:55  justb
 * many cosmetic changes
 *
 * Revision 1.5  2004/03/10 13:59:28  justb
 * rewrite using Collection classes and finer synchronization
 *
 * Revision 1.4  2003/08/15 08:37:40  justb
 * fix/add Copyright+LGPL file headers and footers
 *
 * Revision 1.3  2003/08/12 08:54:40  justb
 * added getSubscriberCount() and use Log
 *
 * Revision 1.2  2003/05/18 16:15:08  justb
 * support for XML encoded Events
 *
 * Revision 1.1.1.1  2002/09/24 21:02:31  justb
 * import to sourceforge
 *
 * Revision 1.1.1.1  2002/09/20 22:48:18  justb
 * import to SF
 *
 * Revision 1.1.1.1  2002/09/20 14:19:04  justb
 * first import into SF
 *
 * Revision 1.3  2002/04/15 20:42:41  just
 * reformatting and renaming GuardedQueue to EventQueue
 *
 * Revision 1.2  2000/08/21 20:48:29  just
 * added CVS log and id tags plus copyrights
 *
 *
 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区美女视频| 久久精品理论片| 日本怡春院一区二区| 国产不卡视频在线观看| 欧美久久久一区| 国产精品嫩草99a| 日韩电影一二三区| 欧美在线影院一区二区| 久久免费视频色| 视频一区欧美精品| 99精品久久只有精品| 久久一二三国产| 日产精品久久久久久久性色| 91视频91自| 欧美精彩视频一区二区三区| 久久精品国产精品亚洲精品| 欧美日韩中文一区| 亚洲精选视频免费看| 国产成人亚洲综合a∨婷婷图片| 91精品国产综合久久久久| 伊人色综合久久天天| 波多野结衣在线aⅴ中文字幕不卡| 日韩欧美高清一区| 日韩国产成人精品| 4438成人网| 午夜av区久久| 欧美日韩中文国产| 丝袜美腿成人在线| 欧美丰满美乳xxx高潮www| 一区二区不卡在线播放| 91免费看片在线观看| 一区精品在线播放| yourporn久久国产精品| 国产日韩精品视频一区| 精品一区二区国语对白| 精品国产乱码久久久久久免费 | 欧美日韩国产经典色站一区二区三区| 国产精品久久久久永久免费观看 | 日本三级韩国三级欧美三级| 欧美日韩在线一区二区| 亚洲sss视频在线视频| av电影在线观看一区| 中文字幕免费不卡| 国产成人福利片| 国产女主播一区| 成人av在线资源网| 亚洲天堂网中文字| 色久优优欧美色久优优| 亚洲欧美日韩久久| 欧美性淫爽ww久久久久无| 亚洲自拍偷拍av| 91精品国产综合久久久久久久久久| 日韩精品高清不卡| 久久色中文字幕| 不卡高清视频专区| 一区二区三区免费| 日韩视频在线一区二区| 国产成人自拍网| 亚洲色欲色欲www| 欧美欧美欧美欧美首页| 精品中文字幕一区二区| 日本一区二区综合亚洲| 色天天综合色天天久久| 亚洲高清视频在线| 欧美tickling挠脚心丨vk| 丰满岳乱妇一区二区三区| 亚洲人成亚洲人成在线观看图片| 在线观看91视频| 另类综合日韩欧美亚洲| 国产精品久久久久aaaa| 欧美日韩情趣电影| 国产风韵犹存在线视精品| **网站欧美大片在线观看| 欧美吞精做爰啪啪高潮| 久久99国内精品| 亚洲黄网站在线观看| 日韩你懂的在线观看| aaa亚洲精品一二三区| 日韩和欧美一区二区三区| 国产欧美日本一区二区三区| 欧美视频一区二区三区四区 | 91在线视频网址| 日韩电影免费在线看| 国产精品久久精品日日| 91精品国产乱码| av资源网一区| 老司机精品视频线观看86| 亚洲欧美日韩一区二区三区在线观看 | 日本国产一区二区| 国产成人一区在线| 日本中文字幕一区二区有限公司| 国产精品每日更新| 日韩亚洲欧美在线| 欧美亚一区二区| 99精品桃花视频在线观看| 韩国欧美国产一区| 亚洲电影视频在线| 国产精品第四页| 久久综合狠狠综合| 欧美一区二区美女| 欧美性猛交xxxx黑人交| 成人黄色大片在线观看| 国产美女一区二区三区| 麻豆成人综合网| 亚洲一区二区综合| 国产精品第一页第二页第三页| 欧美xxxx在线观看| 91精品国产综合久久久蜜臀粉嫩| 在线免费视频一区二区| 99免费精品视频| 成人激情午夜影院| 国产盗摄女厕一区二区三区| 国内外成人在线视频| 国内精品伊人久久久久影院对白| 婷婷六月综合亚洲| 视频在线观看国产精品| 日本欧美一区二区三区乱码| 无吗不卡中文字幕| 天堂资源在线中文精品| 亚洲成人www| 秋霞午夜av一区二区三区| 五月激情综合色| 青青草97国产精品免费观看无弹窗版| 亚洲一本大道在线| 日韩国产在线观看一区| 日韩电影网1区2区| 久久99热国产| 国产精品18久久久久久久久 | 国产日韩欧美电影| 日本一区二区三区dvd视频在线| 欧美激情中文不卡| 中文字幕一区二区视频| 亚洲人吸女人奶水| 亚洲国产色一区| 免费久久精品视频| 国产精品一区二区在线播放| 成人黄色av电影| 在线观看国产91| 欧美一区二区福利在线| 亚洲精品在线免费观看视频| 久久久精品国产免大香伊| 日本一区二区动态图| 亚洲欧美福利一区二区| 一区二区三区电影在线播| 日韩精品国产精品| 国产精品77777| 色94色欧美sute亚洲13| 91麻豆精品国产91久久久久| 久久综合视频网| 国产精品乱码一区二区三区软件| 亚洲欧洲中文日韩久久av乱码| 五月天一区二区三区| 国产一区二区三区在线观看精品| 国产麻豆精品在线| 欧美在线制服丝袜| 精品成人私密视频| 一区二区三区在线看| 麻豆精品国产91久久久久久| 成人免费高清在线| 91精品国产综合久久香蕉麻豆| 国产午夜一区二区三区| 一区二区三区色| 精品在线亚洲视频| 欧美综合在线视频| 日韩午夜精品电影| 夜夜嗨av一区二区三区中文字幕| 久久电影网电视剧免费观看| 91啪亚洲精品| 精品国产一二三区| 亚洲国产wwwccc36天堂| 国产成人精品午夜视频免费| 欧美军同video69gay| 中文在线资源观看网站视频免费不卡| 亚洲午夜久久久久中文字幕久| 国产精品亚洲一区二区三区在线 | 午夜精品福利久久久| 成人激情视频网站| 26uuu欧美日本| 日欧美一区二区| 日本丶国产丶欧美色综合| 国产亚洲福利社区一区| 日本成人在线网站| 欧美色综合网站| 亚洲人成网站影音先锋播放| 国产经典欧美精品| 欧美一区二区三区不卡| 亚洲一区二区三区中文字幕| 99久久免费精品高清特色大片| 久久久精品免费网站| 精品无码三级在线观看视频| 欧美色视频一区| 亚洲精品成人精品456| 成人免费的视频| 亚洲国产成人自拍| 国产999精品久久久久久| 久久久av毛片精品| 国产精品一区久久久久| 久久久精品人体av艺术| 国产很黄免费观看久久| 日本一区二区三区国色天香|