XMPP
XMPP 協定支援 (Jabber!)
已過時
此傳輸方式已在 5.8.0 版本中棄用,並在 5.9.0 版本中移除!
我們在 ActiveMQ Classic 中支援 XMPP (Jabber) 作為傳輸方式。
若要使用,只需新增一個連接器如下:
<broker xmlns="http://activemq.org/config/1.0">
<transportConnectors>
<transportConnector name="openwire" uri="tcp://127.0.0.1:61616" discoveryUri="multicast://default"/>
<transportConnector name="stomp" uri="stomp://127.0.0.1:61613"/>
<transportConnector name="xmpp" uri="xmpp://127.0.0.1:61222"/>
</transportConnectors>
</broker>
現在您可以使用 XMPP 連接到代理程式,並傳送和接收訊息。
某些版本的代理程式 (5.0-5.2) 預設不包含 WoodStox 程式庫,這可能會影響 ActiveMQ Classic 的 XMPP 功能。您的代理程式的
lib/optional
目錄中應該有一個名為wstx-asl-x.x.x.jar
的程式庫。如果沒有,請從 這裡 下載並放入類別路徑中。
Apache ActiveMQ Classic 中的 XMPP 支援
ActiveMQ Classic 提供 ActiveMQ Classic 訊息和 XMPP 之間的雙向橋接。
- 如果客戶端加入聊天室/會議室,會議室的名稱會被對應到同名的 JMS 主題。
- 在聊天室中輸入內容會將訊息傳送到該主題。
- 在聊天室中的狀態會維護 JMS 主題的訂閱(使用 noLocal 來避免接收自己所說內容的副本),因此由其他客戶端傳送的訊息(透過 XMPP、Web 控制台、範例 或任何其他 跨語言客戶端)會接著傳送到聊天室。
使用 Jabber 客戶端
基本上,您應該能夠從任何與 Jabber 相容的客戶端連線到代理程式。以下範例使用 Spark 2.0.0 版本。如需有關使用不同客戶端連線的更多詳細資訊,請參閱 #Jabber 客戶端相容性。
若要連線到 Apache ActiveMQ Classic,請嘗試以下步驟…
- 執行 Web 控制台
- 啟動 Spark 或您想要的任何 Jabber 客戶端
-
登入 localhost:61222
某些 Jabber 客戶端(例如 iChat)堅持使用 使用者名稱@主機 格式的使用者名稱,因此在這種情況下,只需在您的使用者名稱後面附加 @localhost 即可。
某些 Jabber 客戶端喜歡自動探索主機和連接埠。您需要明確停用此功能,以便您可以明確將 localhost 設定為主機,並將 61222 設定為連接埠。
例如,在 Spark 上,前往 進階 標籤並停用 自動探索主機和連接埠。
-
您現在應該會看到以下畫面…
-
現在按一下 加入會議室 按鈕(在新增聯絡人按鈕旁邊),應該會出現以下對話方塊
-
現在按下 建立或加入房間 按鈕以顯示以下對話方塊。輸入 JMS 主題名稱,在此範例中為 foo.bar,這樣就可以了…
-
現在您的聊天視窗應該會出現,以供交談和收聽主題 foo.bar。因此,請開始輸入內容來測試看看。
-
現在,如果您前往 Web 控制台中的 主題控制台,您應該會看到已建立的主題。
-
如果您現在按一下 foo.bar 主題旁邊的 傳送至 連結,您可以從 Web 控制台將訊息傳送到該主題。
-
按下傳送,您應該會在聊天視窗中看到聊天內容。
Jabber 客戶端相容性
在這裡您可以找到各種 Jabber 客戶端的特定問題和解決方法。如果您有自己的解決方法,請在此處張貼。
Spark
網址:http://www.igniterealtime.org/projects/spark/index.jsp
Spark 2.0.0 與 ActiveMQ Classic 運作良好;按一下 這裡 以下載:適用於 Windows 的 Spark 2.0.0。
Spark 2.5.x 連線正常,但它不會開啟 加入會議室 對話方塊。
iChat
網址:http://www.apple.com/macosx/features/ichat.md
測試的 4.0.7 版本運作正常,但它堅持您使用 使用者名稱@主機 格式的使用者名稱。
Adium
網址:http://www.adiumx.com/
測試的 1.3.3 版本運作正常。唯一發現的問題是重新連線到 Command Agent 主題。如果您需要執行此操作,我們建議您重新啟動 Adium。