如何确保在Spring中同步请求中传递的websocket消息?

时间:2016-10-14 02:44:56

标签: java spring websocket

实际上我通过编写"非常自定义"解决了这个问题。处理,但我对它不满意,我认为应该采用透明的方式来做到这一点。

所以故事是:

  1. "一个"用户来和注册一些事件以便持续使用 的WebSocket

  2. "另一个"用户来解雇此事件。此次活动的更多内容仅针对特定用户" One"而且只为他。和我们 在DB中进行一些更改(事务处于打开状态)。一个重要的 事情是那个"另一个"用户可能不完全"用户",但是另一个后端发送HTTP请求,甚至内部计划任务。

  3. 如果某个消息没有被传递和处理,我们需要回滚数据并返回错误响应"另一个"用户。
  4. 当然,我们首先阅读http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html

    好的,让我们从简单开始并扩展TextWebSocketHandler存储websocket会话,并从"另一个"发送消息。用户到" One"使用它。问题是它没有验证传递的消息 - 会话可能会过期(甚至浏览器可能会冻结,等等),我们也没有抛出任何异常。

    好的,然后我们进一步阅读文档,并通过WebSocket消息传递体系结构#34; STOMP Over WebSocket Messaging Architecture"它看起来像我们可以有这个验证,但这个API看起来像是从websocket到websocket的交互。在我的情况下,事件应该不是来自websocket请求。

    有类似的问题:

    Web Socket - Spring : Confirm of message received

    How to assure reliable message delivery of websockets?

    但是他们可以对STOMP感到满意,或者提供像Cettia项目那样的异步API http://cettia.io/projects/cettia-java-server/1.0.0-Beta1/

    所以问题是:是否有现成的实现/库/等。使用同步API透明验证消息传递?

0 个答案:

没有答案