原文地址:
http://cometd.org/documentation/cometd-java/server/configuration
CometDJava 服务器配置
由 sbordet 提交于星期二,2009/11/17-11:40。
CometDJava 服务器配置
基本配置
CometDservlet 必须在 web.xml 中的设置。
如果你是入门新手,那么 Maven 已经给你配了web.xml 文件,但在这里我们将详细介绍其配置。
这是 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>
这个org.cometd.server.continuation.ContinuationCometdServlet,必须定义并映射在 web.xml,否则,服务器将不能解释 Bayeux 协议。
它通常映射上/cometd / *,但您可以根据您希望的来更改映射 url的模式。
这是ContinuationCometdServlet的配置初始化参数的列表:
参数名称 | 默认值 | 参数说明 |
timeout | 30000 | 以毫秒为单位的时间,服务器等待长轮询空响应消息的时间。 |
interval | 0 | 以毫秒为单位的时间,指定客户端在一个长轮询结束之后下一个长轮询开始之前要等待多长时间 |
maxInterval | 10000 | 以毫秒为单位的最大周期,服务器在前一个客户端被认为无效或被移除时等待客户端新的长轮询的周期 |
logLevel | 0 | 日志级别 ;0 = 警告,1 = 信息,2 = 调试 |
multiFrameInterval | -1 | 以毫秒为单位的周期,指定客户端正常轮询周期的情况下,服务器会检测是否是从同一个浏览器打开的多个tab/frame的连接。非正值表示第二个tab/frame将被断开。 |
requestAvailable | False | 是否使用Bayeux.getCurrentRequest()返回当前的 HttpServletRequest |
filters | | JSON 文件的路径,相对于war的 WEB-INF 目录的路径,它要指定安装 DataFilters |
jsonDebug | False | 是否应该为了调试目的保留完整的 JSON 输入 |
channelIdCacheLimit | 0 | ChannelId 高速缓存的限制。设置为-1禁用缓存,设置为 0 表示没有限制,设置为正值表示一旦达到该设置的限制就清除缓存 |
高级的配置
如果您使用的jetty 7,你可能想还配置 CrossOriginFilter。
此过滤器实现跨起源资源共享规范,并允许最近浏览器(如2009 年 11 月的,Firefox 3.5.x,Chrome 3.x 和 Safari 4.x)实现执行跨域 JavaScript 请求 (请参阅传输章节)。
下面是为 CrossOriginFilterweb.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>
<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>
请参阅本文档的过滤器配置。
联系客服