XMPP 作为软件组件/服务器之间的消息传递解决方案?

Posted

技术标签:

【中文标题】XMPP 作为软件组件/服务器之间的消息传递解决方案?【英文标题】:XMPP as Messaging solution between software components / servers? 【发布时间】:2012-01-17 15:04:45 【问题描述】:

我想研究使用 XMPP 作为多台服务器之间的消息传递解决方案的可能性,以有效地拥有一个系统,其中不仅用户而且软件本身都与该系统进行通信。我知道这可以通过 XMPP 标准实现,但问题是我可以使用哪些库或现成的 XMPP 服务器来完成此操作。

有必要交换不同的 XML 有效负载,建立安全连接并在消息到达时获得“确认”。我读到这一切都可以通过 XMPP 扩展或插件实现,但我发现的所有服务器和客户端都专注于即时消息传递,并且通常不支持任何与安全或确认相关的扩展。

示例:假设安装在 10 台机器上的软件用于交换硬件上发生的事件,并且所有机器都希望能够实时显示其他机器上发生了哪些事件,以及它究竟发生在哪台机器上。其中5个系统上的软件是用.NET实现的,另外5个系统上的软件是用Java实现的。

(我研究了 OpenFire,但我想听听您的建议)

【问题讨论】:

【参考方案1】:

XMPP pubsub 似乎适合您的问题空间。

许多(大多数?)服务器(包括 OpenFire)都支持它。您可以将Smack 用于您的Java 客户端实现,并且还有several .NET libraries 可用。我对它们不熟悉,所以我不会推荐一个(也不知道哪个支持 pubsub)。

【讨论】:

谢谢。在我接受答案之前,我会等待更多建议 :-) 我支持这个答案。我自己不是 .NET 开发人员,但我曾与成功使用 Matrix/agsXMPP 进行 pubsub(使用 Prosody 作为服务器)的人合作。

以上是关于XMPP 作为软件组件/服务器之间的消息传递解决方案?的主要内容,如果未能解决你的问题,请参考以下文章

XMPP学习及使用1

我们能否仅借助 FCM 而无需 Xmpp 来演示上游消息传递? [关闭]

我们如何确定 XMPP 消息何时传递?

异步消息的传递-回调机制

谷歌云消息传递 - 使用 smack 的 xmpp 服务器端不起作用

Python中具有jid / password身份验证和消息传递功能的简单XMPP服务器