Package nbxmpp :: Module client_nb :: Class NonBlockingClient

[hide private]
[frames] | no frames]

# Class NonBlockingClient

source code

Client class is XMPP connection mountpoint. Objects for authentication, network communication, roster, xml parsing ... are plugged to client object. Client implements the abstract behavior - mostly negotioation and callbacks handling, whereas underlying modules take care of feature-specific logic

Instance Methods | [hide private]

__init__(self, domain, idlequeue, caller=None) Caches connection data | source code

disconnect(self, message=`'````'`) Called on disconnection - disconnect callback is picked based on state of the client. | source code

connect(self, on_connect, on_connect_failure, hostname=None, port=5222, on_proxy_failure=None, on_stream_error_cb=None, proxy=None, secure_tuple=`(``'``plain``'``,` None`,` None`)`) Open XMPP connection (open XML streams in both directions) | source code

_resolve_hostname(self, hostname, port, on_success) Wrapper for getaddinfo call | source code

_try_next_ip(self, err_message=None) Iterate over IP addresses tries to connect to it | source code

incoming_stream_version(self) Get version of xml stream | source code

_xmpp_connect(self, socket_type=None) Start XMPP connecting process - open the XML stream. Is called after TCP connection is established or after switch to TLS when successfully negotiated with <starttls>. | source code

_xmpp_connect_machine(self, mode=None, data=None) Finite automaton taking care of stream opening and features tag handling. Calls _on_stream_start when stream is started, and disconnect() on failure. | source code

_on_stream_start(self) Called after XMPP stream is opened. TLS negotiation may follow if supported and desired. | source code

_tls_negotiation_handler(self, con=None, tag=None) Take care of TLS negotioation with <starttls> | source code

_on_connect(self) Preceed call of on_connect callback | source code

raise_event(self, event_type, data) Raise event to connection instance. DATA_SENT and DATA_RECIVED events are used in XML console to show XMPP traffic | source code

auth(self, user, password, resource=`'````'`, sasl=True, on_auth=None) Authenticate connnection and bind resource. If resource is not provided random one or library name used | source code

_on_old_auth(self, res) Callback used by NON-SASL auth. On auth failure, res is None | source code

_on_sasl_auth(self, res) Used internally. On auth failure, res is None | source code

_on_doc_attrs(self) Plug authentication objects and start auth | source code

_on_start_sasl(self, data=None) Callback used by SASL, called on each auth step | source code

_on_auth_bind(self, data) | source code

initRoster(self, version=`'````'`) Plug in the roster | source code

getRoster(self, on_ready=None, force=False) Return the Roster instance, previously plugging it in and requesting roster from server if needed | source code

sendPresence(self, jid=None, typ=None, requestRoster=0) Send some specific presence state. Can also request roster from server if according agrument is set | source code

RegisterDisconnectHandler(self, handler) Register handler that will be called on disconnect | source code

UnregisterDisconnectHandler(self, handler) Unregister handler that is called on disconnect | source code

DisconnectHandler(self) Default disconnect handler. Just raises an IOError. If you choosed to use this class in your production client, override this method or at least unregister it. | source code

get_connect_type(self) Return connection state. F.e.: None / 'tls' / 'plain+non_sasl' | source code

get_peerhost(self) Gets the ip address of the account, from which is made connection to the server (e.g. IP and port of socket) | source code

Method Details | [hide private]

### __init__(self, domain, idlequeue, caller=None)
(Constructor)

source code

Caches connection data

Parameters:
  - `domain` - domain - for to: attribute (from account info)
  - `idlequeue` - processing idlequeue
  - `caller` - calling object - it has to implement methods _event_dispatcher which is called from dispatcher instance

### disconnect(self, message=`'````'`)

source code

Called on disconnection - disconnect callback is picked based on state of the client.

### connect(self, on_connect, on_connect_failure, hostname=None, port=5222, on_proxy_failure=None, on_stream_error_cb=None, proxy=None, secure_tuple=`(``'``plain``'``,` None`,` None`)`)

source code

Open XMPP connection (open XML streams in both directions)

Parameters:
  - `on_connect` - called after stream is successfully opened
  - `on_connect_failure` - called when error occures during connection
  - `hostname` - hostname of XMPP server from SRV request
  - `port` - port number of XMPP server
  - `on_proxy_failure` - called if error occurres during TCP connection to proxy server or during proxy connecting process
  - `proxy` - dictionary with proxy data. It should contain at least values for keys 'host' and 'port' - connection details for proxy serve and optionally keys 'user' and 'pass' as proxy credentials
  - `secure_tuple` - tuple of (desired connection type, cacerts, mycerts) connection type can be 'ssl' - TLS established after TCP connection, 'tls' - TLS established after negotiation with starttls, or 'plain'. cacerts, mycerts - see tls_nb.NonBlockingTLS constructor for more details

### _resolve_hostname(self, hostname, port, on_success)

source code

Wrapper for getaddinfo call

FIXME: getaddinfo blocks

### _try_next_ip(self, err_message=None)

source code

Iterate over IP addresses tries to connect to it

### incoming_stream_version(self)

source code

Get version of xml stream

### _xmpp_connect(self, socket_type=None)

source code

Start XMPP connecting process - open the XML stream. Is called after TCP connection is established or after switch to TLS when successfully negotiated with <starttls>.

### _xmpp_connect_machine(self, mode=None, data=None)

source code

Finite automaton taking care of stream opening and features tag handling. Calls _on_stream_start when stream is started, and disconnect() on failure.

### _on_stream_start(self)

source code

Called after XMPP stream is opened. TLS negotiation may follow if supported and desired.

### _tls_negotiation_handler(self, con=None, tag=None)

source code

Take care of TLS negotioation with <starttls>

### _on_connect(self)

source code

Preceed call of on_connect callback

### raise_event(self, event_type, data)

source code

Raise event to connection instance. DATA_SENT and DATA_RECIVED events are used in XML console to show XMPP traffic

### auth(self, user, password, resource=`'````'`, sasl=True, on_auth=None)

source code

Authenticate connnection and bind resource. If resource is not provided random one or library name used

Parameters:
  - `user` - XMPP username
  - `password` - XMPP password
  - `resource` - resource that shall be used for auth/connecting
  - `sasl` - Boolean indicating if SASL shall be used. (default: True)
  - `on_auth` - Callback, called after auth. On auth failure, argument is None.

### _on_old_auth(self, res)

source code

Callback used by NON-SASL auth. On auth failure, res is None

### _on_sasl_auth(self, res)

source code

Used internally. On auth failure, res is None

### _on_doc_attrs(self)

source code

Plug authentication objects and start auth

### _on_start_sasl(self, data=None)

source code

Callback used by SASL, called on each auth step

### _on_auth_bind(self, data)

source code

### initRoster(self, version=`'````'`)

source code

Plug in the roster

### getRoster(self, on_ready=None, force=False)

source code

Return the Roster instance, previously plugging it in and requesting roster from server if needed

### sendPresence(self, jid=None, typ=None, requestRoster=0)

source code

Send some specific presence state. Can also request roster from server if according agrument is set

### RegisterDisconnectHandler(self, handler)

source code

Register handler that will be called on disconnect

### UnregisterDisconnectHandler(self, handler)

source code

Unregister handler that is called on disconnect

### DisconnectHandler(self)

source code

Default disconnect handler. Just raises an IOError. If you choosed to use this class in your production client, override this method or at least unregister it.

### get_connect_type(self)

source code

Return connection state. F.e.: None / 'tls' / 'plain+non_sasl'

### get_peerhost(self)

source code

Gets the ip address of the account, from which is made connection to the server (e.g. IP and port of socket)

We will create listening socket on the same ip