2017-01-20 87 views
1

我有一個問題:我創建了一個彈簧啓動,踩踏,sockjs通知系統。我有一個服務器Java和一個JavaScript客戶端。我必須從服務器發送一些通知給客戶端,但是:當客戶端在線時,我向他發送通知 - >它可以工作! (我使用stomp和sockjs) 當客戶端離線時,我必須保存通知,並且我會向他發送保存的通知,當他將返回在線..任何建議?我怎樣才能做到這一點?我已經閱讀了關於ActiveMQ的一些信息,但我在哪裏可以找到一些準確的教程?預先感謝您Spring Stomp sockjs通知隊列websocket

+0

你好,能否請你共享代碼或引用您的能夠發送通知到在Spring MVC中,蹬地實現了多聯機/連接的用戶,襪子JS?提前致謝。面臨類似的問題在這裏面臨:http://stackoverflow.com/questions/33910639/how-to-broadcast-a-message-using-raw-spring-4-websockets-without-stomp –

回答

0

發佈您的代碼,配置... 您可以通過將通知發佈到目標(如果您有多個客戶端用於相同通知類型,或者如果您有通知爲每個客戶端),當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

ActiveMQ的擴展踩 您可以添加自定義頁眉踩命令來配置ActiveMQ協議。以下是一些示例:

CONNECT client-id字符串指定與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"); 
    }); 
} 
+0

是的,但我怎麼能定義持久訂閱? – Catechacha

+0

請參閱update,client-id字符串指定與activemq.subcriptionName結合使用以表示持久訂閱者的JMS clientID。 –

+0

謝謝謝謝謝謝! – Catechacha

相關問題