2012-05-23 90 views
0

我正在使用活動mq實現作爲stomp服務器/代理的stomp協議。我希望有一個stomp客戶端的消息隊列,可以在客戶端處於脫機狀態時進行填充,以便當客戶端不時連接時,它可以獲取在脫機時已存入的消息。用於持久訂閱的stomp協議常規序列

當我閱讀時,可以使用簡單訂閱或持久訂閱來實現此功能。我決定持久訂閱。這是正確的方式嗎?

然後我想知道我應該在客戶端使用哪些消息和頭文件。其實我用下面

CONNECT

  • 登錄:
  • 密碼:
  • 客戶端ID:some_mac_adr

訂閱

  • 目的地:/隊列/ some_mac_adr
  • 收據:收據味精
  • 耐用,用戶名:默認

現在等待消息

超時 - >

斷開

這是消息序列正確嗎?我還沒有使用取消訂閱命令。這是否正確?

+0

請記住接受以最佳方式回答您的問題的答案。 – Buchi

回答

1

我決定進行持久訂閱。這是正確的方式嗎?

隊列在默認情況下是持久的,因此您不必顯式地使用戶持久化。

關於標題,正如我所說,由於您不需要使用戶持久,您可以避免傳遞持久訂戶名稱標題。而且,不確定這是否是偶然的,但您不需要保持隊列名稱和客戶端ID相同。

順便說一句,您正在使用哪種語言?不同語言的STOMP實現應該採取合理的默認設置,因此您不必擔心CONNECT,SUBSCRIBE等標頭。

我還沒有使用unsubscribe命令。這是否正確?

同樣,unsubscribe()對隊列沒有太大的區別,但是當消費者完成其工作時,取消訂閱會更清晰。

我希望能幫助你的情況。