2009-07-09 68 views

回答

2

这是一个很难回答的问题,因为我怀疑有很多开发人员参与跨多个XMPP项目和语言的开发。

我可以抛出一些个人的看法,但是......我可能不在基地!

你真正需要的是哪个libraries将被推荐用于组件开发。所有的服务器都支持组件协议,所以你真正需要的是一个到服务器的套接字连接,以及一些帮助程序例程,以便使消息解析等重复的事情变得更加容易。

服务器可能很重要的地方在于您是否需要更紧密的集成。

例如,如果您希望组件的缩放方式与Ejabberd相同,那么您可能会想要使用exmpp

如果您需要将您的组件与Openfire一起部署到仅限Java的企业,那么您可能需要使用smack

如果您熟悉Python并且想快速使用原型,请使用Wokkel

我不认为文档对于任何图书馆来说都会很棒(虽然没有看过它们),但这不应该是一个巨大的负担。你真的需要一个good book关于XMPP协议是如何工作的,然后从库中获得一些示例代码,并且从那里开始相当容易。

+0

好的,经过一番研究,我明白组件的语言不需要与服务器的语言相同,因为它们通过TCP(不是某种共享库)进行交互。但是,仍然有一些框架可以帮助开发这些组件。例如,你建议使用smack,但是这个线程(http://www.igniterealtime。org/community/thread/9027)给我留下了一些疑惑。 – alves 2009-07-10 20:16:11

1

对于易于使用的测试服务器,我喜欢openfire。良好的说明,易于挂钩的组件,以及良好的管理界面。调试更像是日志文件中的“tail -f”,稍微是java-ish。

我专业地使用XCP,但这真的是商业用途。它运作良好,但如果这不是您的目标部署,则不值得付出努力。我不确定你是否可以再分开购买。

我试过用ejabberd,我放弃了。我发现安装和管理的文档很糟糕。配置文件不是自我描述的,在ejabberd网站上没有很好的介绍。它可能在早上甚至可以把我的鸡蛋炒早餐,但是我分配给它的时间无法通过安装。

1

对于Openfire,有一种叫做Whack的东西,它是用于创建服务器组件(XEP-0114)的Java库。

由于通信是通过套接字,我认为相同的代码应该适用于任何精心设计的XMPP服务器(如ejabberd)。不过,我只用Openfire进行过测试,效果很好。