Tigase插件 – 配置

现在对插件的配置还不是那么直接和简单,我们即将对插件的配置方式进行调整。

在对Tigase载入插件的配置方式当中,最佳最简单的是通过init.properties文件。–sm-plugins属性值标明了哪些插件会在运行时被加载,多个插件之间使用逗号“,”分割。
–sm-plugins = list of plugins –  被服务器加载的插件列表。通常你不需要指定这个参数,服务器会自动加载默认的插件,默认的插件列表包含了所有可用的插件。如果你不想加载所有的插件:比如你的用户管理是由第三方的系统提供,tigase仅作为XMPP服务与其集成,这时你也许不希望用户通过XMPP来注册新用户,那么你就不应该加载用户注册插件;另一种情况是你开发了一个自己的插件来替换tigase的默认插件,比如vCard或者通讯录管理……
如果不希望加载,就在插件id之前加上一个“-”;如果希望加载,就在插件之前加上一个“+”, “+”是可以省略的。比如,下面的一个设置就是关闭了用户注册,并且添加了一个你自己的插件“your-plugin”:

--sm-plugins=-jabber:iq:register,+your-plugin

另外需要说明的是,每一个插件都会在一个或多个线程内运行。大多数访问数据库的插件都会在N个线程里运行,N为cpu或cpu的核心个数。在某些情况下,这样简单的配置方式还不够:比如数据库比较慢,或者你的服务负载压力比较大,你需要调节插件线程的个数。那么可以在插件id后面添加“=N”,N就是线程的个数。还是上面的那个例子,修改为8个线程执行“your-plugin”,16个线程执行认证服务:

--sm-plugins=-jabber:iq:register,+your-plugin=8,jabber:iq:auth=16

很明显,如果想自如的修改配置,必须要知道插件列表的id。获得插件列表id有两种途径:

一是通过日志文件:logs/tigase-console.log。如果你看一下日志文件,你会找到类似下面的输入:

Loading plugin: jabber:iq:register ...
Loading plugin: jabber:iq:auth ...
Loading plugin: urn:ietf:params:xml:ns:xmpp-sasl ...
Loading plugin: urn:ietf:params:xml:ns:xmpp-bind ...
Loading plugin: urn:ietf:params:xml:ns:xmpp-session ...
Loading plugin: roster-presence ...
Loading plugin: jabber:iq:privacy ...
Loading plugin: jabber:iq:version ...
Loading plugin: http://jabber.org/protocol/stats ...
Loading plugin: starttls ...
Loading plugin: vcard-temp ...
Loading plugin: http://jabber.org/protocol/commands ...
Loading plugin: jabber:iq:private ...
Loading plugin: urn:xmpp:ping ...

在日志中会找到已经被加载的插件列表。

二是查看session manager的源码,那里硬编码了默认的插件列表:

private static final String[] PLUGINS_FULL_PROP_VAL =
  {"jabber:iq:register", "jabber:iq:auth", "urn:ietf:params:xml:ns:xmpp-sasl",
   "urn:ietf:params:xml:ns:xmpp-bind", "urn:ietf:params:xml:ns:xmpp-session",
   "roster-presence", "jabber:iq:privacy", "jabber:iq:version",
   "http://jabber.org/protocol/stats", "starttls", "msgoffline",
   "vcard-temp", "http://jabber.org/protocol/commands", "jabber:iq:private",
   "urn:xmpp:ping", "basic-filter", "domain-filter"};

无论怎样,你都必须把插件id正确地配置到“–sm-plugins”属性值当中,如果插件在正确的类路径下,那么它就会在运行时被加载。

还有一种加载插件的方式,如果看过之前的一章:Tigase插件-编写插件,应该还记得插件接口定义的方法中都有一个入口参数:Map setting,这个map里面包含了写在配置文件当中的那些配置项,它们会在插件执行时被传递给插件。

init.properties是你放置配置信息的地方,这些配置项都以字符串 sess-man/plugins-conf 开头,那么就可以把你的插件id放到你的配置项里:

sess-man/plugins-conf/message/key1=val1
sess-man/plugins-conf/message/key2=val2
sess-man/plugins-conf/message/key3=val3


转载于:https://my.oschina.net/wjwei113/blog/375310

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值