# Cometd

## Cometd Component

The cometd: component is a transport for working with the jetty implementation of the cometd/bayeux protocol. Using this component in combination with the dojo toolkit library it's possible to push Apache Camel messages directly into the browser using an AJAX based mechanism.

## URI format

    cometd://host:port/channelName[?options]

The channelName represents a topic that can be subscribed to by the Apache Camel endpoints.

## Examples

    cometd://localhost:8080/service/mychannel
    cometds://localhost:8443/service/mychannel

where `cometds:` represents an SSL configured endpoint.

## Options

Name | Default Value | Description
--- | --- | ---
`resourceBase` |  | The root directory for the web resources or classpath. Use the protocol file: or classpath: depending if you want that the component loads the resource from file system or classpath. Classpath is required for OSGI deployment where the resources are packaged in the jar
`timeout` | `240000` | The server side poll timeout in milliseconds. This is how long the server will hold a reconnect request before responding.
`interval` | `0` | The client side poll timeout in milliseconds. How long a client will wait between reconnects
`maxInterval` | `30000` | The max client side poll timeout in milliseconds. A client will be removed if a connection is not received in this time.
`multiFrameInterval` | `1500` | The client side poll timeout, if multiple connections are detected from the same browser.
`jsonCommented` | `true` | If `true`, the server will accept JSON wrapped in a comment and will generate JSON wrapped in a comment. This is a defence against Ajax Hijacking.
`logLevel` | `1` | `0`=none, `1`=info, `2`=debug.

You can append query options to the URI in the following format, `?option=value&option=value&...`

Here is some examples of how to pass the parameters.

For file (when the Webapp resources are located in the Web Application directory) `cometd://localhost:8080?resourceBase=file./webapp`. For classpath (when the web resources are packaged inside the Webapp folder) `cometd://localhost:8080?resourceBase=classpath:webapp`.