[[Atmosphere-Websocket-AtmosphereWebsocketServletComponent]]
Atmosphere Websocket Servlet Component
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

*Available as of Camel 2.14*

The *atmosphere-websocket:* component provides Websocket
based link:endpoint.html[endpoints] for a servlet communicating with
external clients over Websocket (as a servlet accepting websocket
connections from external clients). +
The component uses the link:servlet.html[SERVLET] component and uses
the https://github.com/Atmosphere/atmosphere[Atmosphere] library to
support the Websocket transport in various Servlet containers (e..g.,
Jetty, Tomcat, ...).

Unlike the
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=39621544[Websocket]
component that starts the embedded Jetty server, this component uses the
servlet provider of the container.

Maven users will need to add the following dependency to
their `pom.xml` for this component:

[source,xml]
------------------------------------------------------------
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-atmosphere-websocket</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
------------------------------------------------------------

[[Atmosphere-Websocket-URIFormat]]
URI Format
^^^^^^^^^^

[source,java]
-----------------------------------------------
atmosphere-websocket:///relative path[?options]
-----------------------------------------------

[[Atmosphere-Websocket-ReadingandWritingDataoverWebsocket]]
Reading and Writing Data over Websocket
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

An atmopshere-websocket endpoint can either write data to the socket or
read from the socket, depending on whether the endpoint is configured as
the producer or the consumer, respectively.

[[Atmosphere-Websocket-ConfiguringURItoReadorWriteData]]
Configuring URI to Read or Write Data
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

In the route below, Camel will read from the specified websocket
connection.

[source,java]
-------------------------------------------
from("atmosphere-websocket:///servicepath")
        .to("direct:next");
-------------------------------------------

And the equivalent Spring sample:

[source,xml]
------------------------------------------------------------
<camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="atmosphere-websocket:///servicepath"/>
    <to uri="direct:next"/>
  </route>
</camelContext>
------------------------------------------------------------

In the route below, Camel will read from the specified websocket
connection.

[source,java]
---------------------------------------------------
from("direct:next")
        .to("atmosphere-websocket:///servicepath");
---------------------------------------------------

And the equivalent Spring sample:

[source,xml]
------------------------------------------------------------
<camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="direct:next"/>
    <to uri="atmosphere-websocket:///servicepath"/>
  </route>
</camelContext>
------------------------------------------------------------

 

[[Atmosphere-Websocket-SeeAlso]]
See Also
^^^^^^^^

* link:configuring-camel.html[Configuring Camel]
* link:component.html[Component]
* link:endpoint.html[Endpoint]
* link:getting-started.html[Getting Started]

* link:servlet.html[SERVLET]
* link:ahc-ws.html[AHC-WS]
*
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=39621544[Websocket]

