【发布时间】:2011-04-08 09:25:19
【问题描述】:
我需要接收发布到 JMS 主题的更新,将其转换为 XMPP 数据包(Presence 数据包或 PubSub 数据包)并将其路由到 XMPP 端点。
我使用 ActiveMQ 作为 JMS 提供程序,使用 Apache camel 作为路由引擎。下面给出的是我在 Camel 中的路线(为了简单起见,我从 system.in 而不是 jms 主题中读取):
from("stream:in?promptMessage=Enter something:").process( new Processor(){
public void process(Exchange exchange) throws Exception {
System.out.println("sending presence with message: " + exchange.getIn().getBody().toString());
Presence p = new Presence(Type.available, exchange.getIn().getBody().toString(), 5, Mode.chat);
exchange.getIn().setBody(p);
}
}).to("xmpp:user1@banl080161?password=pass1");
想法是 user1@banl080161 应该能够发送具有从 system.in 给定的状态的客户存在数据包。我正在从 system.in 读取信息,制作存在数据包,在交换正文中设置此数据包并代表 user1@banl080161 发送此存在信息。
问题:什么都没有发送到 XMPP 服务器,我使用 PSI 来查看来自 user1@banl080161 的数据包,user1@banl080161 确实在线,但没有收到自定义状态消息。
在apache camel中可以做这种事情吗?
【问题讨论】:
-
通过camel-xmpp组件代码浏览,camel既可以发送聊天消息,也可以进行多用户聊天。似乎无法发送自定义 xmpp 数据包。
标签: routing xmpp apache-camel publish-subscribe