繁体   English   中英

将JaxRS REST服务与WebSocket集成

[英]Integrating JaxRS REST service with WebSockets

我正在尝试开发一个实现发布者-订阅模式的社交网络(类似于Twitter):用户可以关注用户,因此在发送新的关注者出版物时会得到通知。

现在,我所拥有的是通过JaxRS实现的有效的REST服务,它在Tomcat 7上运行,提供用于登录,注册,获取配置文件数据和提交帖子的服务。 Servlet映射是通过web.xml完成​​的

我的JaxRS应用程序配置

休息服务

Web.xml

但是应用程序的权重来自pubsub部分。 这就是事情变得混乱的地方。

在谈论技术和实现之前,此发布订阅的生命周期为:

假设A和B是该应用程序的某些用户,而A跟随(已订阅)B。

  1. A导航到他的“时间轴”,因此在服务器上注册了WebSocket端点,当他被邀请与他人进行任何发布时,他将从该WebSocket端点接收通知。 (A,他本人,将成为话题吗?)
  2. B发布新帖子,并通过HTTP POST / post发送到JaxRS服务。
  3. 服务器将发布存储在数据库中,然后通过WebSocket将其发送给侦听订户。 当A还在世并且正在聆听时,通过他的WebSocket /主题发送出版物。
  4. 获得新出版物的通知。

我曾经使用过Java内置WebSockets(javax.websocket),Spring websockets(通过STOMP)和JavaScript内置和SockJS。 我知道JaxRS有一个称为“服务器发送事件”的东西,其作用类似于websockets,但是我对如何初始化和使用它们完全迷失了。

我的疑问:

1)我可以将Spring Websockets与我的JaxRS服务器“混合”,如何对其进行初始化?

2)使用JaxRS和SSE,我可以在服务器上动态创建WS端点吗?

提前致谢

终于使用Jersey的服务器发送事件做出了解决方法,尽管IE不支持它,但是可以满足我的需要

这是SSEProviderSSEDispatcher的代码

Gradle依赖

与前端连接处理程序

还有一些关于HTML5 SSE的文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM