来自 Camel XMPP 的消息未通过 Openfire 到达 Pidgin
Posted
技术标签:
【中文标题】来自 Camel XMPP 的消息未通过 Openfire 到达 Pidgin【英文标题】:Messages from Camel XMPP not arriving in Pidgin via Openfire 【发布时间】:2015-02-27 15:51:19 【问题描述】:我有骆驼路线发送到带有 uri 的生产者模板:
xmpp://user1@127.0.0.1:5225/user2@127.0.0.1?password=password
127.0.0.1:5225
的服务器正在运行安装了监控插件的 openfire。 user1 和 user2 都在服务器上设置。
我有一个 pidgin 客户端在 user2 上登录。
如果我将 uri 更改为发送到房间并使用 pidgin 客户端查看该房间,则消息会按预期显示。但是,因为它没有收到任何消息。使用监控插件,显示消息在openfire中存档,参与者为user1@127.0.0.1
和user1@127.0.0.1/Camel
。
任何想法为什么 Camel 似乎没有发送给我设置的参与者?
更新:
使用 pidgin 客户端从 'user1@127.0.0.1' 发送到 'user2@127.0.0.1' 和反之亦然的消息有效。 在 Pidgin 上以 'user1@127.0.0.1' 的身份登录时以 'user1@127.0.0.1' 的身份运行骆驼意味着我收到了消息。
【问题讨论】:
使用participant
URL 选项代替参与者 URL 组件是否有效?您的用户 JID 是 user1@127.0.0.1
和 user2@127.0.0.1
?
不,我也试过了。我也试过创建端点并明确设置参与者。是的,这些是 JID
【参考方案1】:
原来我是使用以下方法发送的:
producer.sendBodyAndHeaders(msg, exchange.getIn().getHeaders());
交换标头包含一个 XMPPConstants.To
标头,该标头覆盖了 uri 中的参与者字段。
【讨论】:
以上是关于来自 Camel XMPP 的消息未通过 Openfire 到达 Pidgin的主要内容,如果未能解决你的问题,请参考以下文章
我可以通过 Firebase Admin SDK 接收来自设备的上游消息,而无需在应用程序服务器上实现 XMPP