| [[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] |
| |