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.Protocolinstance. 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.Serverobject when the server is listening, otherwiseNone.
-
listen()¶ Start listening for incoming connections. Return an
asyncio.Serverinstance, 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.Protocolclass 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
Nonethe protocol returned bydefault_rpc_protocol()is used.framer handles RPC message framing, and if
Nonethen the framer returned bydefault_framer()is used.scheduler should be left as
None.Logging will be sent to logger,
Nonewill use a logger specific to theClientSessionobject’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.
JSONRPCv2is returned by the default implementation.
-
default_framer()¶ You can override this method to provide a default message frmaer. A new
NewlineFramerinstance is returned by the default implementation.
-
The ClientSession and ServerSession classes share a
base class that has the following attributes and methods: