def __init__(self,transport,port=5347,typ=None,debug=['always', 'nodebuilder'],domains=None,sasl=0,bind=0,route=0,xcp=0):
        """ Init function for Components.
            As components use a different auth mechanism which includes the namespace of the component.
            Jabberd1.4 and Ejabberd use the default namespace then for all client messages.
            Jabberd2 uses jabber:client.
            'transport' argument is a transport name that you are going to serve (f.e. "irc.localhost").
            'port' can be specified if 'transport' resolves to correct IP. If it is not then you'll have to specify IP
            and port while calling "connect()".
            If you are going to serve several different domains with single Component instance - you must list them ALL
            in the 'domains' argument.
            For jabberd2 servers you should set typ='jabberd2' argument.
        """
        CommonClient.__init__(self,transport,port=port,debug=debug)
        self.typ=typ
        self.sasl=sasl
        self.bind=bind
        self.route=route
        self.xcp=xcp
        if domains:
            self.domains=domains
        else:
            self.domains=[transport]
 Init function for Components.
            As components use a different auth mechanism which includes the namespace of the component.
            Jabberd1.4 and Ejabberd use the default namespace then for all client messages.
            Jabberd2 uses jabber:client.
            'transport' argument is a transport name that you are going to serve (f.e. "irc.localhost").
            'port' can be specified if 'transport' resolves to correct IP. If it is not then you'll have to specify IP
            and port while calling "connect()".
            If you are going to serve several different domains with single Component instance - you must list them ALL
            in the 'domains' argument.
            For jabberd2 servers you should set typ='jabberd2' argument.
        
chrome-cordova/gcmServer/xmpp/client.py