为无状态Web应用程序实现websocket队列

时间:2016-03-22 09:21:58

标签: java spring websocket stomp

我想听听您的意见,当没有用户会话(无状态,安静的Web应用程序)时,使用Spring和STOMP协议实现websocket队列的最佳选择是什么。

根据这个解释:https://stackoverflow.com/a/31577152/3076403我知道当我们使用queue方法时Spring会使用simpMessagingTemplate.convertAndSendToUser(...)并传递与会话ID相关联的用户名。否则它将使用topic,其中所有订阅的客户端最终将读取从服务器返回的相同消息。

就我而言,我有一个带有Angular UI部分的RESTful应用程序。我想在UI端实现进度条。最初,UI使用之前确定的给定ID将消息发送到服务器,例如:{id: 20}

然后,UI必须侦听返回的模型对特定ID的更改,并计算内部处理的进度。消息可能如下所示:{id: 20, timeLeft: 30, totalTime: 60}

因此,对于将订阅服务器上的websocket频道的每个Angular应用,它应该会给出不同的结果。

由于我在应用程序中没有会话并且必须在服务器上实现websocket队列,您是否知道使用Spring和STOMP协议的其他解决方案与我最近提出的解决方案不同:

春天:simpMessagingTemplate.convertAndSend("/ui/progress/"+id, ...)

UI ng-stomp:$stomp.subscribe("/ui/progress/"+id, function(...))

我知道这将是一个“假”主题,而不是排队。任何评论和想法都赞赏。

0 个答案:

没有答案