分享

CometD Java 服务器配置

 phoneone 2011-11-16

原文地址:

         http:///documentation/cometd-java/server/configuration

 

CometD Java 服务器配置

 

sbordet 提交于星期二,2009/11/17-11:40

 

CometD Java 服务器配置

 

基本配置

 

CometD servlet 必须在 web.xml 中的设置。

如果你是入门新手,那么 Maven 已经给你配了web.xml 文件,但在这里我们将详细介绍其配置。

这是 web.xml 示例:

 

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java./xml/ns/javaee"

         xmlns:xsi="http://www./2001/XMLSchema-instance"

         xsi:schemaLocation="http://java./xml/ns/javaee http://java./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.xChrome 3.x Safari 4.x)实现执行跨域 JavaScript 请求 (请参阅传输章节)。

下面是为 CrossOriginFilter web.xml 配置的一个示例:

 

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java./xml/ns/javaee"

         xmlns:xsi="http://www./2001/XMLSchema-instance"

         xsi:schemaLocation="http://java./xml/ns/javaee http://java./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>

 

请参阅本文档的过滤器配置。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约