gpt4 book ai didi

java - 整理 XMPP

转载 作者:太空狗 更新时间:2023-10-29 22:45:22 27 4
gpt4 key购买 nike

维基百科将 XMPP 定义为:

...an open-standard communications protocol for message-oriented middleware based on XML.

xmpp.org 将 XMPP 定义为:

The Extensible Messaging and Presence Protocol (XMPP) is an open XML technology for real-time communication, which powers a wide range of applications.

尽管我确信这两个定义都非常准确,但是它们没有告诉我我 - Java 开发人员 - 实际上可以使用 XMPP 的事情!

例如,我听说 XMPP 可以与面向消息的中间件 (MOM) 一起使用。怎么会这样? XMPP 能否以某种方式与我的 Apache Camel 路由、我的 ESB 或某些 SOA 实现集成以提供更好/更快/更强大的业务层?如果是这样,如何?!?!

非常感谢 XMPP 的 King's-English 解释以及一些实际示例(最好以 MOM 为中心)。提前致谢!

最佳答案

XMPP 可用于范围广泛的基于消息传递的应用程序。基本上,它提供可用于构建基于 XML 的消息传递应用程序的核心服务。它基于分散的客户端-服务器架构,并利用长生命周期的 TCP 连接进行通信...

核心服务包括...

  • channel 加密、身份验证、状态、联系人列表、一对一消息、多方消息、通知
  • 服务发现、功能广告、结构化数据格式、工作流管理、点对点媒体 session

教科书用例...

  • 即时消息(使用状态、联系人列表、一对一消息)
  • 群聊、游戏、系统控制、地理定位、中间件/云计算、数据联合
  • 机器人(天气、数据库接口(interface)、系统监控)

消息传递模式/模式...

  • 点对点消息传递用于发送给特定的接收者
  • 多用户消息传递用于向一组接收者发送消息
  • 当有大量事件并且系统对事件的不同子集感兴趣时,使用发布/订阅支持。发布者将事件放入主题中,订阅者指示他们对哪些主题感兴趣。这将发布者/订阅者分离并允许可扩展的实时消息传递。有关详细信息,请参阅本文:http://www.isode.com/whitepapers/xmpp-pubsub.html

部署方法...

  • XMPP 用户 - 作为普通用户连接并响应发送给用户的请求
  • XMPP 服务器插件 - 作为服务器插件架构的一部分部署
  • XMPP 组件 - XMPP 服务器的外部服务,连接并像插件一样运行

Java 集成

  • Smack API - 一个纯 Java 库,它可以嵌入到您的应用程序中以创建从完整的 XMPP 客户端到简单的 XMPP 集成的任何东西,例如发送通知消息和支持状态的设备。
  • Camel XMPP - 允许在 Camel 路由中与 Smack API 集成的 Camel 组件

针对您的具体问题“它可以用于 SOA/中间件吗?”....

  • 是的,它可用于通过 XML 消息传递和 XMPP API 将应用程序连接在一起
  • 是否是最佳技术选择在很大程度上取决于需求
  • 一个很好的用例,交互式系统监控/管理... here are some other examples

此外,XMPP 与 Camel 的集成也很简单。看这个camel-xmpp unit test有关与 Google Talk 服务器交互的基本示例。此外,Camel 的框架允许您构建应用程序并轻松更换不同的消息传递技术(JMS、STOMP、mina 等)。

关于java - 整理 XMPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10051261/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com