转载

openfire可插拔的名册支持指南

介绍

本文档提供了有关如何配置Openfire的的名册支持工作与其他来源的名册数据,而不是所提供的数据库表的说明。 考虑的的聊天服务器解决方案,现有的“social应用程序与Openfire集成的情况。在这个应用中用户链接到其他用户通过各种各样的关系,并记录系统的关系数据不是Openfire的系统里面的。使用如XMPP服务器Openfire的应用将受益于实时性的的XMPP名册和其他的基于订阅的功能,如PEP,但告诫说,现有的合作关系信息被复制的Openfire,并有可能成为不同步。 可插拔的花名册供应商的引进,Openfire可以再标准数据库表检索和修改名册数据。选择是无限的,这可能是: 备用数据库表(S),一个Web服务,一个NoSQL数据库等。

背景

这种整合需要一定的Java知识,以实现Openfire一个自定义的名单供应商。所需的技能会有所不同,这取决于你正在努力实现的。扩展方法是基于自定义AuthProvider。

RosterItemProvider扩展点

Openfire3.7.2,类RosterItemProvider发生了变化,成了一个具体的类接口。此提供程序的默认实现是DefaultRosterItemProvider,顾名思义,这是该Openfire版本自带的provider 实现,如果不重写。则 DefaultRosterItemProvider使用Openfire数据库中检索名册信息。 步骤获得的Openfire使用一个定制RosterItemProvider的描述如下。
  1. 写一个类实现RosterItemProvider,提供自己的业务逻辑。
  2. 在一个jar里的类,并把它放置在lib目录下。将类打包jar的方式有很多种,流行的如Gradle 和Maven构建系统可以使您的工作更轻松。
  3. 设置该属性的provider.roster.className是你的类的全名,例如: 'com.foo.bar.MyRosterItemProvider
  4. 重新启动Openfire的。您的自定义类现在应该可以处理所有的名册的操作。

常见问题

 
  1. 我需求将我的自定义编译的类放进Openfire的jar?不,类只需要放在Openfire的类路径上。
  2. 我如何确保我的自定义类是在Openfire的类路径上?只要将您的新的自定义库在Openfire的lib目录,这将确保它可以自动启动。
  3. 使用自定义RosterItemProvider,会不会降低性能?这完全取决于您的实现。任何Openfire的定制或插件,写的不好的代码有可能造成Openfire的执行速度慢。使用性能测试工具如聪,以确保问题还没有被引入。
  4. 我怎么使我的自定义类连接到另一个数据库/ Web服务/NoSQL的存储等?这是本文档的范围之外,作为一个开发者是你的选择。如果您正在寻找外部连接的详细信息,在的Openfire属性机制,JiveGlobals的类的属性
  5. 对于HybridAuthProvider,我可以拥有多个RosterItemProviders吗?不可以,此功能目前尚未实现。如果你觉得有必要,自己去拓展他
正文到此结束
Loading...