XMPP聊天基础架构建议

时间:2018-02-08 14:04:15

标签: ionic-framework xmpp chat ejabberd openfire

我计划开发一个聊天项目,当前决定使用哪个XMPP服务器和客户端。 前端将使用Ionic 3+ framework(固定要求)实施。

主要特点:

  • 私人聊天功能(1对1)
  • 群聊功能(以及将用户添加到现有聊天的功能)
  • 在线状态可见性
  • 离线消息传递(在线用户向离线用户发送消息,离线用户在上线后获取消息等)
  • 全职服务器端聊天记录存储

我需要选择:

  • 使用Ionic 3 +
  • 方便实现的客户端库
  • 支持所有上述要求的服务器

此外,聊天消息应该通过网络进行至少某种加密。

目前,我一直在玩这些服务器选项:

  • eJabberd - 大多数人推荐这个选项,但对我来说,一个人,他是XMPP的新手,看起来配置上会有很多麻烦
  • openFire - 易于设置和使用,但它使用Java VM,有些人认为它在性能和内存管理方面存在问题。

我偶然发现了AstraChat - 一种商业产品,看起来与我的需求类似 - 但是,通过固定实现它自己的公共应用程序 - 无法使用它的代码库。

截至前端 - 我只尝试使用Ionic 1 tutorial作为前端客户端在本地运行Strophe.js。由于我使用Ionic 3+(TypeSript)开发应用程序,使用一些较新的和TS兼容的库会很棒 - 但是,这只是一个愿望,而不是一个要求。 :)

也许这个概念有一些更好,更方便的非XMPP实现。欢迎任何想法!

1 个答案:

答案 0 :(得分:1)

  1. eJabbered对您的应用程序来说是非常复杂的决定。
  2. openFire也很复杂,需要JVM
  3. 对于你的应用,我建议Prosody。它简单轻巧。

    https://en.wikipedia.org/wiki/Comparison_of_XMPP_server_software

    但请注意在XMPP协议上使用聊天。该协议非常难以学习,并且具有各种扩展(例如XEP),您将对文档感到困惑。

    替代https://github.com/actorapp/actor-platform 但文件已经过时了。