Java 实现自己的/扩展的XMPP服务器的设计准则是什么?

Java 实现自己的/扩展的XMPP服务器的设计准则是什么?,java,xmpp,ejabberd,openfire,jabberd2,Java,Xmpp,Ejabberd,Openfire,Jabberd2,根据XMPP和来自, 设置客户端到服务器会话包括以下阶段: 启动到服务器的TCP连接 打开XML流 协商各种流特征 与服务器进行身份验证 选择资源 对于IM应用程序,请求花名册并发送初始状态 在这种情况下,客户端是小型物联网设备,它们需要始终保持这些流的打开状态,以便服务器能够与它们联系 如果我想创建我自己的xmpp服务器 其中哪些是最好的开始,哪些应该支持RFC6120 有什么设计指南吗 如果创建自己的xmpp服务器是个糟糕的主意 其中(“openfire”、“tigase”)最适合 扩

根据XMPP和来自, 设置客户端到服务器会话包括以下阶段:

  • 启动到服务器的TCP连接
  • 打开XML流
  • 协商各种流特征
  • 与服务器进行身份验证
  • 选择资源
  • 对于IM应用程序,请求花名册并发送初始状态
  • 在这种情况下,客户端是小型物联网设备,它们需要始终保持这些流的打开状态,以便服务器能够与它们联系

    如果我想创建我自己的xmpp服务器

    • 其中哪些是最好的开始,哪些应该支持RFC6120
    • 有什么设计指南吗
    如果创建自己的xmpp服务器是个糟糕的主意

    • 其中(“openfire”、“tigase”)最适合 扩展其行为

    • xmpp服务器通常可以处理多少并发连接


    既然你在谈论物联网设备,你确定你真的需要XMPP吗?我对XMPP有个人经验,我想说XMPP比乍看起来更复杂,特别是连续连接可能会有问题(您需要完整的端到端消息)。因此,除非你真的需要大部分/所有的XMPP功能(状态管理、联系人管理等),否则我可能会选择一些定制和简单的功能(可能基于HTTP2及其服务器推送功能)。@kostix感谢你的建议,但我只需要使用XMPP:(创建/实现自己的XMPP服务器时没有充分的理由,也没有太多关于XMPP的背景知识,这是一个糟糕的想法我知道XMPP服务器是可扩展的,因为协议本身是可扩展的。通常你甚至不需要扩展服务器,只需向服务器添加一个外部/内部XMPP组件。如果你有资金,你可能想看看哪个服务器得到了提供支持合同的公司的支持。还有MongooseIM和Ejabberd fo例如,Prosody有一个很好的社区(我相信你也会得到付费支持)。而且不必担心在物联网领域使用XMPP。我在使用它方面有很好的经验。XMPP是模块化的,可以降低到最低级别,因此你可以使用XMPP而不需要存在和联系人管理(在RFC 6121中定义),只需使用来自(RFC 6120,可能是XEP-0198)。@Flow感谢您的输入。既然您正在谈论物联网设备,您确定您真的需要XMPP吗?我对XMPP有个人经验,我想说XMPP比乍一看更复杂,特别是连续连接可能会有问题(您需要完整的端到端消息确认)。因此,除非您真的需要大部分/所有XMPP功能(状态管理、联系人管理等),否则我可能会选择一些定制和简单的功能(可能基于HTTP2及其服务器推送功能)。@kostix感谢您的建议,但我只需要使用XMPP:(创建/实现自己的XMPP服务器时没有充分的理由,也没有太多关于XMPP的背景知识,这是一个糟糕的想法我知道XMPP服务器是可扩展的,因为协议本身是可扩展的。通常你甚至不需要扩展服务器,只需向服务器添加一个外部/内部XMPP组件。如果你有资金,你可能想看看哪个服务器得到了提供支持合同的公司的支持。还有MongooseIM和Ejabberd fo例如,Prosody有一个很好的社区(我相信你也会得到付费支持)。而且不必担心在物联网领域使用XMPP。我在使用它方面有很好的经验。XMPP是模块化的,可以降低到最低级别,因此你可以使用XMPP而不需要存在和联系人管理(在RFC 6121中定义),只需使用来自(RFC 6120和可能的XEP-0198)。@感谢您的输入。