原文地址:
http://cometd.org/documentation/cometd-java/server/configuration
CometDJava 服務(wù)器配置
由 sbordet 提交于星期二,2009/11/17-11:40。
CometDJava 服務(wù)器配置
基本配置
CometDservlet 必須在 web.xml 中的設(shè)置。
如果你是入門新手,那么 Maven 已經(jīng)給你配了web.xml 文件,但在這里我們將詳細(xì)介紹其配置。
這是 web.xml 示例:
<?xmlversion="1.0" encoding="UTF-8"?>
<web-appxmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>cometd</servlet-name>
<servlet-class>org.cometd.server.continuation.ContinuationCometdServlet</servlet-class>
<init-param>
<param-name>timeout</param-name>
<param-value>60000</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>cometd</servlet-name>
<url-pattern>/cometd/*</url-pattern>
</servlet-mapping>
</web-app>
這個(gè)org.cometd.server.continuation.ContinuationCometdServlet,必須定義并映射在 web.xml,否則,服務(wù)器將不能解釋 Bayeux 協(xié)議。
它通常映射上/cometd / *,但您可以根據(jù)您希望的來更改映射 url的模式。
這是ContinuationCometdServlet的配置初始化參數(shù)的列表:
參數(shù)名稱 | 默認(rèn)值 | 參數(shù)說明 |
timeout | 30000 | 以毫秒為單位的時(shí)間,服務(wù)器等待長輪詢空響應(yīng)消息的時(shí)間。 |
interval | 0 | 以毫秒為單位的時(shí)間,指定客戶端在一個(gè)長輪詢結(jié)束之后下一個(gè)長輪詢開始之前要等待多長時(shí)間 |
maxInterval | 10000 | 以毫秒為單位的最大周期,服務(wù)器在前一個(gè)客戶端被認(rèn)為無效或被移除時(shí)等待客戶端新的長輪詢的周期 |
logLevel | 0 | 日志級別 ;0 = 警告,1 = 信息,2 = 調(diào)試 |
multiFrameInterval | -1 | 以毫秒為單位的周期,指定客戶端正常輪詢周期的情況下,服務(wù)器會檢測是否是從同一個(gè)瀏覽器打開的多個(gè)tab/frame的連接。非正值表示第二個(gè)tab/frame將被斷開。 |
requestAvailable | False | 是否使用Bayeux.getCurrentRequest()返回當(dāng)前的 HttpServletRequest |
filters | | JSON 文件的路徑,相對于war的 WEB-INF 目錄的路徑,它要指定安裝 DataFilters |
jsonDebug | False | 是否應(yīng)該為了調(diào)試目的保留完整的 JSON 輸入 |
channelIdCacheLimit | 0 | ChannelId 高速緩存的限制。設(shè)置為-1禁用緩存,設(shè)置為 0 表示沒有限制,設(shè)置為正值表示一旦達(dá)到該設(shè)置的限制就清除緩存 |
高級的配置
如果您使用的jetty 7,你可能想還配置 CrossOriginFilter。
此過濾器實(shí)現(xiàn)跨起源資源共享規(guī)范,并允許最近瀏覽器(如2009 年 11 月的,Firefox 3.5.x,Chrome 3.x 和 Safari 4.x)實(shí)現(xiàn)執(zhí)行跨域 JavaScript 請求 (請參閱傳輸章節(jié))。
下面是為 CrossOriginFilterweb.xml 配置的一個(gè)示例:
<?xmlversion="1.0" encoding="UTF-8"?>
<web-appxmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>cometd</servlet-name>
<servlet-class>org.cometd.server.continuation.ContinuationCometdServlet</servlet-class>
<init-param>
<param-name>timeout</param-name>
<param-value>60000</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>cometd</servlet-name>
<url-pattern>/cometd/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/cometd/*</url-pattern>
</filter-mapping>
</web-app>
請參閱本文檔的過濾器配置。