Module autobahn.asyncio¶
Autobahn asyncio specific classes. These are used when asyncio is run as the underlying networking framework.
Component¶
The component API provides a high-level funcional style method of defining and running WAMP components including authentication configuration
-
class
autobahn.asyncio.component.Component(main=None, transports=None, config=None, realm=u'default', extra=None, authentication=None, session_factory=None, is_fatal=None)[source]¶ A component establishes a transport and attached a session to a realm using the transport for communication.
The transports a component tries to use can be configured, as well as the auto-reconnect strategy.
Parameters: - main (callable taking 2 args: reactor, ISession) – After a transport has been connected and a session
has been established and joined to a realm, this (async)
procedure will be run until it finishes – which signals that
the component has run to completion. In this case, it usually
doesn’t make sense to use the
on_*kwargs. If you do not pass a main() procedure, the session will not be closed (unless you arrange for .leave() to be called). - transports (None or unicode or list of dicts) –
Transport configurations for creating transports. Each transport can be a WAMP URL, or a dict containing the following configuration keys:
type(optional):websocket(default) orrawsocketurl: the router URLendpoint(optional, derived from URL if not provided):type: “tcp” or “unix”host,port: only for TCPpath: only for unixtimeout: in secondstls:Trueor (under Twisted) antwisted.internet.ssl.IOpenSSLClientComponentCreatorinstance (such as returned fromtwisted.internet.ssl.optionsForClientTLS) orCertificateOptionsinstance.
- realm (unicode) – the realm to join
- authentication (dict mapping auth_type to dict) – configuration of authenticators
- session_factory (callable) – if None,
ApplicationSessionis used, otherwise a callable taking a singleconfigargument that is used to create a new ApplicationSession instance. - is_fatal (callable taking one arg, or None) – a callable taking a single argument, an
Exceptioninstance. The callable should returnTrueif this error is “fatal”, meaning we should not try connecting to the current transport again. The default behavior (on None) is to always returnFalse
-
session_factory¶ The factory of the session we will instantiate.
alias of
Session
- main (callable taking 2 args: reactor, ISession) – After a transport has been connected and a session
has been established and joined to a realm, this (async)
procedure will be run until it finishes – which signals that
the component has run to completion. In this case, it usually
doesn’t make sense to use the
-
autobahn.asyncio.component.run(components, log_level='info')[source]¶ High-level API to run a series of components.
This will only return once all the components have stopped (including, possibly, after all re-connections have failed if you have re-connections enabled). Under the hood, this calls
XXX fixme for asyncio
– if you wish to manage the loop loop yourself, use the
autobahn.asyncio.component.Component.start()method to start each component yourself.Parameters:
WebSocket Protocols and Factories¶
Classes for WebSocket clients and servers using asyncio.
-
class
autobahn.asyncio.websocket.WebSocketServerProtocol[source]¶ Base class for asyncio-based WebSocket server protocols.
Implements:
-
class
autobahn.asyncio.websocket.WebSocketClientProtocol[source]¶ Base class for asyncio-based WebSocket client protocols.
Implements:
-
class
autobahn.asyncio.websocket.WebSocketServerFactory(*args, **kwargs)[source]¶ Base class for asyncio-based WebSocket server factories.
Implements:
Note
In addition to all arguments to the constructor of
autobahn.websocket.interfaces.IWebSocketServerChannelFactory(), you can supply aloopkeyword argument to specify the asyncio event loop to be used.-
protocol¶ alias of
WebSocketServerProtocol
-
-
class
autobahn.asyncio.websocket.WebSocketClientFactory(*args, **kwargs)[source]¶ Base class for asyncio-based WebSocket client factories.
Implements:
Note
In addition to all arguments to the constructor of
autobahn.websocket.interfaces.IWebSocketClientChannelFactory(), you can supply aloopkeyword argument to specify the asyncio event loop to be used.
WAMP-over-WebSocket Protocols and Factories¶
Classes for WAMP-WebSocket clients and servers using asyncio.
-
class
autobahn.asyncio.websocket.WampWebSocketServerProtocol[source]¶ asyncio-based WAMP-over-WebSocket server protocol.
Implements:
-
class
autobahn.asyncio.websocket.WampWebSocketClientProtocol[source]¶ asyncio-based WAMP-over-WebSocket client protocols.
Implements:
-
class
autobahn.asyncio.websocket.WampWebSocketServerFactory(factory, *args, **kwargs)[source]¶ asyncio-based WAMP-over-WebSocket server factory.
Parameters: - factory (callable) – A callable that produces instances that implement
autobahn.wamp.interfaces.ITransportHandler - serializers (list of objects implementing
autobahn.wamp.interfaces.ISerializer) – A list of WAMP serializers to use (orNonefor all available serializers).
-
protocol¶ alias of
WampWebSocketServerProtocol
- factory (callable) – A callable that produces instances that implement
-
class
autobahn.asyncio.websocket.WampWebSocketClientFactory(factory, *args, **kwargs)[source]¶ asyncio-based WAMP-over-WebSocket client factory.
Parameters: - factory (callable) – A callable that produces instances that implement
autobahn.wamp.interfaces.ITransportHandler - serializer (object implementing
autobahn.wamp.interfaces.ISerializer) – The WAMP serializer to use (orNonefor “best” serializer, chosen as the first serializer available from this list: CBOR, MessagePack, UBJSON, JSON).
-
protocol¶ alias of
WampWebSocketClientProtocol
- factory (callable) – A callable that produces instances that implement
WAMP-over-RawSocket Protocols and Factories¶
Classes for WAMP-RawSocket clients and servers using asyncio.
-
class
autobahn.asyncio.rawsocket.WampRawSocketServerProtocol[source]¶ asyncio-based WAMP-over-RawSocket server protocol.
Implements:
-
class
autobahn.asyncio.rawsocket.WampRawSocketClientProtocol[source]¶ asyncio-based WAMP-over-RawSocket client protocol.
Implements:
-
class
autobahn.asyncio.rawsocket.WampRawSocketServerFactory(factory, serializers=None)[source]¶ asyncio-based WAMP-over-RawSocket server protocol factory.
Parameters: - factory (callable) – A callable that produces instances that implement
autobahn.wamp.interfaces.ITransportHandler - serializers (list of objects implementing
autobahn.wamp.interfaces.ISerializer) – A list of WAMP serializers to use (orNonefor all available serializers).
-
protocol¶ alias of
WampRawSocketServerProtocol
- factory (callable) – A callable that produces instances that implement
-
class
autobahn.asyncio.rawsocket.WampRawSocketClientFactory(factory, serializer=None)[source]¶ asyncio-based WAMP-over-RawSocket client factory.
Parameters: - factory (callable) – A callable that produces instances that implement
autobahn.wamp.interfaces.ITransportHandler - serializer (object implementing
autobahn.wamp.interfaces.ISerializer) – The WAMP serializer to use (orNonefor “best” serializer, chosen as the first serializer available from this list: CBOR, MessagePack, UBJSON, JSON).
-
protocol¶ alias of
WampRawSocketClientProtocol
- factory (callable) – A callable that produces instances that implement
WAMP Sessions¶
Classes for WAMP sessions using asyncio.
-
class
autobahn.asyncio.wamp.ApplicationSession(config=None)[source]¶ WAMP application session for asyncio-based applications.
Implements:
Implements
autobahn.wamp.interfaces.ISession()
-
class
autobahn.asyncio.wamp.ApplicationRunner(url, realm=None, extra=None, serializers=None, ssl=None, proxy=None, headers=None)[source]¶ This class is a convenience tool mainly for development and quick hosting of WAMP application components.
It can host a WAMP application component in a WAMP-over-WebSocket client connecting to a WAMP router.
Parameters: - url (str) – The WebSocket URL of the WAMP router to connect to (e.g. ws://somehost.com:8090/somepath)
- realm (str) – The WAMP realm to join the application session to.
- extra (dict) – Optional extra configuration to forward to the application component.
- serializers (list) – A list of WAMP serializers to use (or None for default serializers).
Serializers must implement
autobahn.wamp.interfaces.ISerializer. - ssl (
ssl.SSLContextor bool) – An (optional) SSL context instance or a bool. See the documentation for the loop.create_connection asyncio method, to which this value is passed as thesslkeyword parameter. - proxy (dict or None) – Explicit proxy server to use; a dict with
hostandportkeys - headers (dict) – Additional headers to send (only applies to WAMP-over-WebSocket).
-
run(make, start_loop=True, log_level='info')[source]¶ Run the application component. Under the hood, this runs the event loop (unless start_loop=False is passed) so won’t return until the program is done.
Parameters: - make (callable) – A factory that produces instances of
autobahn.asyncio.wamp.ApplicationSessionwhen called with an instance ofautobahn.wamp.types.ComponentConfig. - start_loop (bool) – When
True(the default) this method start a new asyncio loop.
Returns: None is returned, unless you specify start_loop=False in which case the coroutine from calling loop.create_connection() is returned. This will yield the (transport, protocol) pair.
- make (callable) – A factory that produces instances of