我遇到了一个问题:我用spring-boot、stomp、sockjs创建了一个通知系统。我有一个Java服务器和一个javascript客户端。我必须从服务器向客户端发送一些通知,但是:当客户端在线时,我会向他发送通知-->,这很有效!(我用stomp和sockjs)当客户离线时,我必须保存通知,当他返回在线时,我会将保存的通知发送给他。。有什么建议吗??我该怎么做?我读过一些关于ActiveMQ的文章,但在哪里可以找到准确的教程?提前感谢
发布您的代码,配置。。。您可以通过将通知发布到一个目的地(如果您有多个相同通知类型的客户端,则主题为持久订阅;如果每个客户端都有通知,则主题是队列),当js客户端连接到该目的地时,他会收到通知。
你可以使用这样的websockethttps://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
有很多libs和示例https://github.com/krukow/stomple/blob/master/example/transactional-chat.html
STOMP的ActiveMQ扩展您可以将自定义标头添加到STOMP命令中,以配置ActiveMQ协议。以下是一些例子:
CONNECT客户端id字符串指定JMS客户端id,该id与activemq.subcriptionName结合使用以表示持久订户
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");
});
}