草 稿

XMPP开源服务器选择

公司准备开发智能家居云服务器。选择XMPP作为协议基础。现在需要找一个开源的服务器软件为基础进行二次开发。XMPP是一个实时消息系统,订阅/通知模型的协议。http://xmpp.org/xmpp-software/servers/这里有服务器列表。本文从服务器选型的角度对比几个xmpp服务器。考虑到开源软件的特性,在2013年之后没有再发布新版本的基本不考虑了。商业软件也不考虑。

 

结论:

1)对比下来,考虑使用的开发语言以及社区活跃度。基本上就在Openfire和Tigase之间选择一个了。两个都是java实现的。

2)Erlang和Lua在XMPP服务器市场上还是占有一席之地的。

3)Ruby和Python作为这几年新兴的编程语言,开始在各个领域都有延伸了。

  1. Citadel

    开源。活跃。

    后端语言:C

    前端框架:PHP

    目前专注邮件和在线协作方面的业务逻辑。大量客户端,包括网页版,KDE等。

  2. ejabberd

    分社区版和商业版。活跃。

    开发语言:Erlang

    它把XMPP分成几个独立的业务,包括推送,即时消息系统等。

  3. in.jabberd

    由个人维护的非常轻量级的开源XMPP服务器。这种文档和社区支持少。但作者很坚持,14年9月份还在发布新版本。

  4. Metronome IM

    从prosody分支FORK出来的。活跃度一般。

    开发语言:Lua

  5. MongooseIM

    开源,活跃。

    开发语言:erlang

    有不少商业化的案例。

  6. Openfire

    开源,活跃,有大量的JAVA库

    语言:JAVA + JSP

    服务器是用来实现协作需求的。需要剪裁来适应智能家居的需求。优点是有大量的JAVA库可以使用。这对ANDROID端的APP开发非常有利。

  7. prosody.im

    用Lua开发的服务端。社区和文档都不多。但作者的代码设计哲学很好,崇尚极简的设计风格。

  8. Tigase

    开源,活跃。

    后端:JAVA

    前端:PHP

    自己在博客上推荐了EJabberd, Openfire, Jabberd2, Prosody 等几个系统。也有JAVA客户端库供使用。看起来这个也挺合适的。

  9. Vines

    活跃,提供商业化服务,也是开源的代码。

    实现语言:Ruby

    看起来象是个小而美的公司做的产品。

  10. Wokkel

    开源,活跃度一般。

    开发语言:PYTHON

    最后两个终于看到WEB开发的新秀ruby和python了。

评论(2

为啥会选择 xmpp …… 感觉还是重啊,对于智能家居来说
同楼上,XML的冗余数据会不会多了一些?