Camel atmosphere-websocket组件:无法从WebsocketHandler获取onOpen / onClose / onError上的事件

时间:2015-11-18 12:22:20

标签: websocket apache-camel atmosphere

我正在做整合websocket和camel并选择现有的氛围 - websocket组件。

我的步骤:

1)添加到web.xml

<!-- Camel servlet -->
<servlet>
    <servlet-name>CamelWsServlet</servlet-name>
    <servlet-class>org.apache.camel.component.atmosphere.websocket.CamelWebSocketServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<!-- Camel servlet mapping -->
<servlet-mapping>
    <servlet-name>CamelWsServlet</servlet-name>
    <url-pattern>/camel/*</url-pattern>
</servlet-mapping>

2)添加到spring applicationContext.xml

    <bean id="websocketProcessor" class="mypackage.WebsocketProcessor" />

<camelContext id="main" xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="atmosphere-websocket:///chat"/>
        <process ref="websocketProcessor"/>
    </route>
</camelContext>

3)使用chrome-extension连接到websocket    url:ws:// localhost:8080 / MyApp / camel / chat

结果:

工作正常我可以连接和发送消息 但出于某种原因,我看到Apache Camel 2.16.0(CamelContext:main)正在启动两次。

但是要点我需要拥有自己的websocket会话密钥和用户对象的地图,所以我需要访问org.apache.camel.component.atmosphere.websocket.WebsocketHandler中的onOpen / onClose / onError方法。 / p>

有任何建议我该怎么做?也许应该扩展该组件以支持此功能?

谢谢,

0 个答案:

没有答案