tigase extra component

修改tigase配置文件

--cluster-mode = false
config-type = --gen-config-def
--cluster-nodes = xumatoMacBook-Pro.local
--debug = server,xmpp.impl,db,cluster
--user-db = derby
--admins = admin@xumatoMacBook-Pro.local
--user-db-uri = jdbc:derby:/Applications/Tigase-5.1.4/tigasedb
--virt-hosts = xumatoMacBook-Pro.local
--comp-class-1 = tigase.muc.MUCComponent
--comp-name-1 = muc
--sm-plugins = +jabber:iq:auth,+urn:ietf:params:xml:ns:xmpp-sasl,+urn:ietf:params:xml:ns:xmpp-bind,+urn:ietf:params:xml:ns:xmpp-session,+jabber:iq:register,+jabber:iq: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,+pep,-zlib
--comp-name-2 = ext
--comp-class-2 = tigase.server.ext.ComponentProtocol
--external = guanfei.org:test:listen:5270:xumatoMacBook-Pro.local:accept:GuanfeiLB

配置开启5270端口,以xep-0114的accept方式,等待外部component接入,GuanfeiLB为自定义的load balance规则

--external = guanfei.org:test:listen:5270:xumatoMacBook-Pro.local:accept:GuanfeiLB

package tigase.server.ext.lb;

import java.util.ArrayList;

import tigase.server.Packet;
import tigase.server.ext.ComponentConnection;
import tigase.server.ext.ComponentIOService;

/**
 * guanfei's lb
 * 
 * @author guanfei
 * @created 2013-1-21
 * 
 * @version 1.0
 */
public class GuanfeiLB implements LoadBalancerIfc {

    static int i = 0;

    @Override
    public ComponentIOService selectConnection(Packet p,
            ArrayList<ComponentConnection> conns) {
        ComponentIOService result = null;
        int index = (++i) % 2;
        ComponentConnection conn = conns.get(index);
        if (conn.getService() != null && conn.getService().isConnected()) {
            result = conn.getService();
        }
        return result;
    }

}


启动tigase。


编写外部component,建工程,加依赖


编写component类,打印点信息,直接信息恢复给发送者

package com.guanfei.comp;

import tigase.server.AbstractMessageReceiver;
import tigase.server.Packet;

/**
 * Guanfei的component
 * 
 * @author guanfei
 * @created 2013-1-21
 * 
 * @version 1.0
 */
public class GuanfeiComponent extends AbstractMessageReceiver {

    @Override
    public void processPacket(Packet arg0) {
        System.out.println(arg0.getElemCData());
        if ("message" == arg0.getElemName()) {
            System.out.println(arg0.getFrom());
            System.out.println(arg0.getTo());
            Packet result = arg0.swapElemFromTo();
            addOutPacket(result);
        }
    }

}

写component配置文件,以comp方式启动,即以组件方式启动,并以xep-0114连接到tigase server

config-type = --gen-config-comp
--debug = server
--user-db = derby
--admins = admin@guanfei.org
--user-db-uri = jdbc:derby:/Applications/Tigase-5.1.4/tigasedbGuanfei;create=true
--virt-hosts = guanfei.org
--comp-name-1 = guanfei
--comp-class-1 = com.guanfei.comp.GuanfeiComponent
--external = guanfei.org:test:connect:5270:xumatoMacBook-Pro.local:accept

启动后查看tigase server的日志输出

2013-01-21 19:36:10  ConnectionManager$ConnectionListenerImpl.accept()  FINEST: Accept called for service: null@null
2013-01-21 19:36:10  ConnectionManager.serviceStarted()  FINER:    [[ext]] Connection started: null, type: accept, Socket: nullSocket[addr=/192.168.60.161,port=57141,localport=5270]
2013-01-21 19:36:10  ComponentProtocol.serviceStarted()  FINEST:   Connection started: 192.168.60.161, xmlns: jabber:component:accept, type: accept, id=192.168.60.161_5270_192.168.60.161_57141
2013-01-21 19:36:10  ComponentProtocol.serviceStarted()  FINEST:   cid: null, sending: null
2013-01-21 19:36:10  ComponentProtocol.xmppStreamOpened()  FINEST: Stream opened: 192.168.60.161, xmlns: jabber:component:accept, type: accept, uniqueId=192.168.60.161_5270_192.168.60.161_57141, to=guanfei.org
2013-01-21 19:36:10  ComponentProtocol.xmppStreamOpened()  FINEST: tigase.server.ext.handlers.ComponentAcceptStreamOpenHandler is processing request
2013-01-21 19:36:10  ComponentAcceptStreamOpenHandler.streamOpened()  FINEST: CompRepoItem for guanfei.org set: guanfei.org:test:accept:5270:xumatoMacBook-Pro.local:accept:tigase.server.ext.lb.GuanfeiLB
2013-01-21 19:36:10  ComponentAcceptStreamOpenHandler.streamOpened()  FINEST: ID generated and set: e9c0ccd9-55a7-42d9-97df-903508945d8b
2013-01-21 19:36:10  ComponentProtocol.xmppStreamOpened()  FINEST: Sending back: <stream:stream xmlns='jabber:component:accept' xmlns:stream='http://etherx.jabber.org/streams' from='guanfei.org' id='e9c0ccd9-55a7-42d9-97df-903508945d8b'>
2013-01-21 19:36:10  ComponentProtocol.processSocketData()  FINEST: Processing socket: null, type: accept, Socket: nullSocket[addr=/192.168.60.161,port=57141,localport=5270], data: null, type: accept, Socket: nullSocket[addr=/192.168.60.161,port=57141,localport=5270]
2013-01-21 19:36:10  HandshakeProcessor.process()        FINEST:   Calculating digest: id=e9c0ccd9-55a7-42d9-97df-903508945d8b, secret=test, digest=3eb494154a8d65c99b348ba308797b53fd89330e
2013-01-21 19:36:10  ComponentProtocol.updateRoutings()  FINEST:   All regex routings: [.*@guanfei.org, .*\.guanfei.org, guanfei.org]
2013-01-21 19:36:10  ComponentProtocol.bindHostname()    FINE:     Authenticated: guanfei.org
2013-01-21 19:36:10  BasicComponent.updateServiceDiscoveryItem()  FINEST: Adding new item: <item name="ext-comp connected" jid="guanfei.org"/>
2013-01-21 19:36:10  ComponentProtocol.addComponentConnection()  FINER: A new component connection added for: guanfei.org
2013-01-21 19:36:10  ConnectionManager.writePacketsToSocket()  FINEST: null, type: accept, Socket: nullSocket[addr=/192.168.60.161,port=57141,localport=5270], Writing packet: from=null, to=null, DATA=<handshake/>, SIZE=12, XMLNS=null, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null

验证一下效果



外部组件集群,直接按照同样的配置在启动一个comp即可,负载均衡按照上面自定义的那个执行。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值