【发布时间】:2014-07-14 22:11:00
【问题描述】:
我正在尝试使用 spring-websocket 和 spring-messaging 设置一个 STOMP WS 端点。我正在尝试手动执行此操作:根本不涉及应用程序上下文,当然也没有调度程序。我的目标是在 ServletContextListener 内的代码中连接适当的 Spring 组件,然后在我的 JSR 356 兼容容器(Tomcat 7)中直接使用 javax.websocket.server.ServerContainer 注册连接的组件。首先,我想使用 spring-messaging 中内置的“简单”代理来实现这个功能;其次,我想实现自己的“代理”,以使用 VM 传输直接与进程内 ActiveMQ 集成。这与 spring-messaging 也提供的 STOMP 中继形成对比。
Spring 文档指出 (http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html):
"...Spring 的 WebSocket 支持不依赖于 Spring MVC。借助 WebSocketHttpRequestHandler 将 WebSocketHandler 集成到其他 HTTP 服务环境中相对简单。"
但是,我发现它并不简单。本质上,我是从:
public void contextInitialized(ServletContextEvent sce) {
ServerContainer websocketContainer = (ServerContainer) sce.getServletContext().getAttribute("javax.websocket.server.ServerContainer");
???
websocketContainer.addEndpoint(???);
}
最后得到了一堆杂乱无章的 spring-websocket 和 spring-messaging 构造函数调用,它们无法编译,当然不值得在这里重现。
我意识到这有点模糊,这是因为我有点迷茫!有没有人做过类似的事情,或者有一些一般性的指导可以贡献?
【问题讨论】:
标签: java spring stomp spring-websocket