XMPP
XMPP 协议支持(Jabber!)
已弃用
该传输在 5.8.0 中已弃用,并在 5.9.0 中已删除!
我们支持 XMPP (Jabber)作为 ActiveMQ Classic 中的传输。
要使用,只需添加以下连接器
<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)坚持使用 username@host 形式的用户名,因此在这种情况下,只需将 @localhost 附加到您的用户名
一些 Jabber 客户端喜欢自动发现主机和端口。您需要显式禁用此功能,以便可以显式配置 localhost 作为主机,61222 作为端口。
例如,在 Spark 上,转到 高级 选项卡并禁用 自动发现主机和端口
-
您现在应该看到以下屏幕…
-
现在单击 加入会议室 按钮(在添加联系人按钮旁边),以下对话框应该出现
-
现在按下 创建或加入房间 按钮以获取以下对话框。输入 JMS 主题名称,在本例中为 foo.bar,您就可以开始了…
-
现在您的聊天窗口应该出现,用于与主题 foo.bar 进行对话和收听。因此开始键入以测试事物。
-
现在,如果您在 Web 控制台中转到 主题控制台,您应该看到该主题已创建
-
如果您现在单击 foo.bar 主题旁边的 发送到 链接,您就可以从 Web 控制台向该主题发送消息。
-
按下发送,您应该看到聊天出现在聊天窗口中
Jabber 客户端兼容性
您可以在此处找到各种 Jabber 客户端的特定问题和解决方法。如果您有自己的问题,请在此处发布。
Spark
URL: http://www.igniterealtime.org/projects/spark/index.jsp
Spark 2.0.0 可以与 ActiveMQ Classic 完美配合;单击 这里 下载:适用于 Windows 的 Spark 2.0.0。
Spark 2.5.x 连接良好,但不会打开 加入会议室 对话框。
iChat
URL: http://www.apple.com/macosx/features/ichat.md
测试版 4.0.7 可以正常工作,但它坚持要求您使用 username@host 格式的用户名
Adium
URL: http://www.adiumx.com/
测试版 1.3.3 可以正常工作。唯一发现的问题是重新连接到 命令代理 主题。如果您需要这样做,建议您重新启动 Adium