Exceptions¶
- exception aiorpcx.ConnectionError¶
When a connection is lost that has pending requests, this exception is set on those requests.
Server¶
A simple wrapper around an asyncio.Server
object (see
asyncio.Server).
- class aiorpcx.Server(protocol_factory, host=None, port=None, *, loop=None, **kwargs)¶
Creates a server that listens for connections on host and port. The server does not actually start listening until
listen()
is await-ed.protocol_factory is any callable returning an
asyncio.Protocol
instance. You might find returning an instance ofServerSession
, or a class derived from it, more useful.loop is the event loop to use, or
asyncio.get_event_loop()
ifNone
.kwargs are passed through to loop.create_server().
A server instance has the following attributes:
- loop¶
The event loop being used.
- host¶
The host passed to the constructor
- port¶
The port passed to the constructor
- server¶
The underlying
asyncio.Server
object when the server is listening, otherwiseNone
.
- listen()¶
Start listening for incoming connections. Return an
asyncio.Server
instance, which can also be accessed viaserver
.This method is a coroutine.
Sessions¶
Convenience classes are provided for client and server sessions.
- class aiorpcx.ClientSession(host, port, *, rpc_protocol=None, framer=None, scheduler=None, loop=None, proxy=None, **kwargs)¶
An instance of an
asyncio.Protocol
class that represents an RPC session with a remote server at host and port, as documented in loop.create_connection().`If proxy is not given,
create_connection()
usesloop.create_connection()
to attempt a connection, otherwiseSOCKSProxy.create_connection()
. You can pass additional arguments to those functions with kwargs (host and port and loop are used as given).rpc_protocol specifies the RPC protocol the server speaks. If
None
the protocol returned bydefault_rpc_protocol()
is used.framer handles RPC message framing, and if
None
then the framer returned bydefault_framer()
is used.scheduler should be left as
None
.Logging will be sent to logger,
None
will use a logger specific to theClientSession
object’s class.- create_connection()¶
Make a connection attempt to the remote server. If successful this return a
(transport, protocol)
pair.This method is a coroutine.
- default_rpc_protocol()¶
You can override this method to provide a default RPC protocol.
JSONRPCv2
is returned by the default implementation.
- default_framer()¶
You can override this method to provide a default message frmaer. A new
NewlineFramer
instance is returned by the default implementation.
The ClientSession
and ServerSession
classes share a
base class that has the following attributes and methods: