JSONRPC2 v2.0.0 JSONRPC2.Clients.TCP View Source
A client for JSON-RPC 2.0 using a line-based TCP transport.
Link to this section Summary
Functions
Call the given method
with params
using the client pool named name
with options
.
Asynchronously call the given method
with params
using the client pool named name
with
options
.
Send a notification with the given method
and params
using the client pool named name
.
Receive the response for a previous cast/3
which returned a request_id
.
Start a client pool named name
, connected to host
at port
.
Stop the client pool with name name
.
Link to this section Types
Specs
call_option() :: {:string_id, boolean()} | {:timeout, pos_integer()}
Specs
call_options() :: [call_option()]
Specs
cast_options() :: [{:string_id, boolean()}]
Specs
host() :: binary() | :inet.socket_address() | :inet.hostname()
Specs
request_id() :: any()
Link to this section Functions
Specs
call(atom(), JSONRPC2.method(), JSONRPC2.params(), boolean() | call_options()) :: {:ok, any()} | {:error, any()}
Call the given method
with params
using the client pool named name
with options
.
You can provide the option string_id: true
for compatibility with pathological implementations,
to force the request ID to be a string.
You can also provide the option timeout: 5_000
to set the timeout to 5000ms, for instance.
For backwards compatibility reasons, you may also provide a boolean for the options
parameter,
which will set string_id
to the given boolean.
Specs
cast(atom(), JSONRPC2.method(), JSONRPC2.params(), boolean() | cast_options()) :: {:ok, request_id()} | {:error, :backlog_full}
Asynchronously call the given method
with params
using the client pool named name
with
options
.
Use receive_response/1
with the request_id
to get the response.
You can provide the option string_id: true
for compatibility with pathological implementations,
to force the request ID to be a string.
You can also provide the option timeout: 5_000
to set the timeout to 5000ms, for instance.
Additionally, you may provide the option pid: self()
in order to specify which process should
be sent the message which is returned by receive_response/1
.
For backwards compatibility reasons, you may also provide a boolean for the options
parameter,
which will set string_id
to the given boolean.
Specs
notify(atom(), JSONRPC2.method(), JSONRPC2.params()) :: {:ok, request_id()} | {:error, :backlog_full}
Send a notification with the given method
and params
using the client pool named name
.
This function returns a request_id
, but it should not be used with receive_response/1
.
Specs
receive_response(request_id()) :: {:ok, any()} | {:error, any()}
Receive the response for a previous cast/3
which returned a request_id
.
Specs
start(host(), :inet.port_number(), atom(), Keyword.t(), Keyword.t()) :: :ok
Start a client pool named name
, connected to host
at port
.
You can optionally pass client_opts
, detailed
here, as well as pool_opts
, detailed
here.
In addition to the client_opts
above, you can also pass:
line_packet
- by default, packets consist of a 4 byte header containing an unsigned integer in big-endian byte order specifying the number of bytes in the packet, followed by that number of bytes (equivalent to the erlang inet packet type4
). If set totrue
, packets will instead be terminated by line-endings, for compatibility with older implementations.
Specs
stop(atom()) :: :ok | {:error, :shackle_not_started | :pool_not_started}
Stop the client pool with name name
.