实际上我通过编写"非常自定义"解决了这个问题。处理,但我对它不满意,我认为应该采用透明的方式来做到这一点。
所以故事是:
"一个"用户来和注册一些事件以便持续使用 的WebSocket
"另一个"用户来解雇此事件。此次活动的更多内容仅针对特定用户" One"而且只为他。和我们 在DB中进行一些更改(事务处于打开状态)。一个重要的 事情是那个"另一个"用户可能不完全"用户",但是另一个后端发送HTTP请求,甚至内部计划任务。
当然,我们首先阅读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透明验证消息传递?