获取定制XMPP服务器有多简单?
关于这个问题,XMPP被提及为IM互操作性的开放标准。
对于我的应用程序来说,如果我使用XMPP进行内部客户机 - 服务器通信,或者开发自己的内部协议,但在服务器上使用XMPP以允许与其他服务器进行通信,那么以后可能会有更大的选择。 我的直觉是后者会更容易,但也许我高估了采取现有的Jabber服务器或XMPP服务器库并构建自定义服务器应用程序的工作量?
如果我的客户端总是会与我的服务器通信,而不直接与其他服务器通信,那么是否使用XMPP合理或过度使用?
假设我想为用户,消息,组和自定义数据创建自己的数据库。 实际上涉及到使用XMPP进行设置,以便我可以自由地将数据发送到服务器,并让我的自定义服务器逻辑处理它? 那里的任何库允许我运行一个'骨架'XMPP服务器,在那里我提供了我自己的处理程序,这些处理程序在收到消息时被调用,等等。
我得到了XMPP的总体思路,但是在实际开始的时候我有点失落,甚至在区分是否需要Jabber服务器应用程序或其他开源服务器库之间进行区分。
还有许可问题。 我当然不打算开源主代码库,如果我要使用GPL XMPP解决方案进行客户端 - 服务器通信,我的理解是我很难努力不让自己的代码与GPL“污染”。
如果你在linux下很容易
sudo apt-get install ejabberd
那么你可以将你的首选IM客户端指向localhost:5222,你就完成了。 当然,如果你想要一个域名等等更多的配置/安装的东西将需要,但我认为这不是你要求的。
注意:还有一个ejabberd的windows版本,http://www.process-one.net/en/ejabberd/downloads
如果你真的想要XMPP,Openfire将是设置http://www.igniterealtime.org/projects/openfire/最简单的一个,如果你使用Java例如,我还会看看BlazeDS。
您可以编写一个XMPP服务器组件。 这将与任何实现XEP 0114的XMPP服务器一起工作。所有主要的XMPP服务器实现都是这样做的。
如果你有一个XMPP服务器组件component.localhost.localdomain
和你的服务器上运行localhost.localdomain
,则该服务器接收任何邮件发送给任何用户component.localhost.localdomain
将立即被传递到服务器组件。 在那里你可以用它来做任何事情(例如处理,存储在数据库中等)。 回复会再次通过XMPP服务器发送给原始发件人,因此组件不必处理服务器任务。
Ruby库xmpp4r和blather都使得在Ruby中编写服务器组件变得非常简单。
与服务器插件相比,XMPP服务器组件的巨大优势在于它们在服务器代码之间通过标准化接口(如XEP 0114中定义的)进行通信时独立于服务器代码。 缺点是组件无法访问服务器内部的数据结构,这可能是也可能不是依赖于应用程序的问题。
但是,如果您从未真正希望让应用程序与其他服务器进行通信,那么使用XMPP并没有什么意义。
链接地址: http://www.djcxy.com/p/94089.html