Spring Stomp sockjs 通知队列 websocket

Spring Stomp sockjs Notification queue websocket

我有一个问题:我已经用 spring boot、stomp、sockjs 创建了一个通知系统。我有一个服务器 Java 和一个 javascript 客户端。我必须从服务器向客户端发送一些通知,但是:当客户端在线时,我向他发送通知 --> 它有效! (我使用 stomp 和 sockjs) 当客户离线时,我必须保存通知,当他 return 在线时,我会向他发送保存的通知。有什么建议吗??我怎样才能做到这一点?我已经阅读了一些有关 ActiveMQ 的内容,但是我在哪里可以找到一些准确的教程?提前谢谢你

post 您的代码、配置... 您可以通过 post 将通知发送到目的地(如果您有多个客户端使用相同的通知类型,则为持久订阅主题;如果您有每个客户端的通知,则为 queue 主题)以及当 js 客户端时连接到他接收它们的那个目的地。

您可以像这样使用 websockets https://github.com/apache/activemq/tree/master/activemq-web-demo/src/main/webapp/websocket

https://github.com/jmesnil/stomp-websocket/blob/master/example/chat/index.html

http://activemq.apache.org/websockets.html

有很多库和例子https://github.com/krukow/stomple/blob/master/example/transactional-chat.html

STOMP 的 ActiveMQ 扩展 您可以将自定义 headers 添加到 STOMP 命令以配置 ActiveMQ 协议。以下是一些示例:

CONNECT client-id string 指定与 activemq.subcriptionName 结合使用的 JMS clientID 以表示持久订阅者。

http://activemq.apache.org/stomp.html

var connect = function () {
   var socket = new SockJS( webSocketUrl );
   stompClient = Stomp.over( socket );

   stompClient.connect( {"client-id": "my-client-id"},, function ( frame ) {

      console.log( 'Connected: ' + frame );

      stompClient.subscribe( topic, function ( message ) {
        .....
        .....
      }, {"activemq.subscriptionName": "my-client-id"});
   }, function(frame) {
        console.log("Web socket disconnected");
   });
 }