mirror of https://github.com/aria2/aria2
Documented JSON-RPC over WebSocket
parent
0792540bf2
commit
3e885c57f6
|
@ -1716,17 +1716,25 @@ host=localhost, protocol=ftp, dl_speed=0, last_updated=1222491632, status=ERROR
|
||||||
RPC INTERFACE
|
RPC INTERFACE
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
aria2 provides both JSON-RPC and XML-RPC and they basically have the
|
aria2 provides JSON-RPC over HTTP and XML-RPC over HTTP and they
|
||||||
same functionality.
|
basically have the same functionality. aria2 also provides JSON-RPC
|
||||||
|
over WebSocket. JSON-RPC over WebSocket uses same method signatures
|
||||||
|
and response format with JSON-RPC over HTTP, but it additionally has
|
||||||
|
server-initiated notifications. See *<<_json_rpc_over_websocket,
|
||||||
|
JSON-RPC over WebSocket>>* section for details.
|
||||||
|
|
||||||
The request path of JSON-RPC interface is '/jsonrpc'.
|
The request path of JSON-RPC interface (for both over HTTP and over
|
||||||
The request path of XML-RPC interface is '/rpc'.
|
WebSocket) is '/jsonrpc'. The request path of XML-RPC interface is
|
||||||
|
'/rpc'.
|
||||||
|
|
||||||
The implemented JSON-RPC is based on http://groups.google.com/group/json-rpc/web/json-rpc-2-0[JSON-RPC 2.0 Specification (2010-03-26)] and supports HTTP POST and GET (JSONP).
|
The implemented JSON-RPC is based on
|
||||||
|
http://jsonrpc.org/specification[JSON-RPC 2.0 Specification] and
|
||||||
|
supports HTTP POST and GET (JSONP). Using WebSocket as a transport is
|
||||||
|
the original extension of aria2.
|
||||||
|
|
||||||
The JSON-RPC interface does not support notification. It also
|
The JSON-RPC interface does not support notification in HTTP, but the
|
||||||
does not support floating point number. The character encoding must be
|
RPC server will send the notification in WebSocket. It also does not
|
||||||
UTF-8.
|
support floating point number. The character encoding must be UTF-8.
|
||||||
|
|
||||||
When reading following document for JSON-RPC, interpret struct as JSON
|
When reading following document for JSON-RPC, interpret struct as JSON
|
||||||
object.
|
object.
|
||||||
|
@ -3355,6 +3363,80 @@ will be encoded like this:
|
||||||
/jsonrpc?params=W3sianNvbnJwYyI6ICIyLjAiLCAiaWQiOiAicXdlciIsICJtZXRob2QiOiAiYXJpYTIuZ2V0VmVyc2lvbiJ9LCB7Impzb25ycGMiOiAiMi4wIiwgImlkIjogImFzZGYiLCAibWV0aG9kIjogImFyaWEyLnRlbGxBY3RpdmUifV0%3D
|
/jsonrpc?params=W3sianNvbnJwYyI6ICIyLjAiLCAiaWQiOiAicXdlciIsICJtZXRob2QiOiAiYXJpYTIuZ2V0VmVyc2lvbiJ9LCB7Impzb25ycGMiOiAiMi4wIiwgImlkIjogImFzZGYiLCAibWV0aG9kIjogImFyaWEyLnRlbGxBY3RpdmUifV0%3D
|
||||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
JSON-RPC over WebSocket
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
JSON-RPC over WebSocket uses same method signatures and response
|
||||||
|
format with JSON-RPC over HTTP. The supported WebSocket version is 13
|
||||||
|
which is detailed in http://tools.ietf.org/html/rfc6455[RFC 6455].
|
||||||
|
|
||||||
|
To send a RPC request to the RPC server, send serialized JSON string
|
||||||
|
in Text frame. The response from the RPC server is delivered also in
|
||||||
|
Text frame.
|
||||||
|
|
||||||
|
The RPC server will send the notification to the client. The
|
||||||
|
notification is unidirectional, therefore the client which received
|
||||||
|
the notification must not respond to it. The method signature of
|
||||||
|
notification is much like a normal method request but lacks id
|
||||||
|
key. The value associated by the params key is the data which this
|
||||||
|
notification carries. The format of this value varies depending on the
|
||||||
|
notification method. Following notification methods are defined.
|
||||||
|
|
||||||
|
[[aria2_rpc_aria2_onDownloadStart]]
|
||||||
|
*aria2.onDownloadStart* ('event')
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This notification will be sent if a download is started.
|
||||||
|
The 'event' is of type struct and it contains following keys.
|
||||||
|
The value type is string.
|
||||||
|
|
||||||
|
gid::
|
||||||
|
|
||||||
|
GID of the download.
|
||||||
|
|
||||||
|
[[aria2_rpc_aria2_onDownloadPause]]
|
||||||
|
*aria2.onDownloadPause* ('event')
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This notification will be sent if a download is paused. The 'event'
|
||||||
|
is the same struct of the 'event' argument of
|
||||||
|
*<<aria2_rpc_aria2_onDownloadStart, aria2.onDownloadStart>>* method.
|
||||||
|
|
||||||
|
[[aria2_rpc_aria2_onDownloadStop]]
|
||||||
|
*aria2.onDownloadStop* ('event')
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This notification will be sent if a download is stopped by the user.
|
||||||
|
The 'event' is the same struct of the 'event' argument of
|
||||||
|
*<<aria2_rpc_aria2_onDownloadStart, aria2.onDownloadStart>>* method.
|
||||||
|
|
||||||
|
[[aria2_rpc_aria2_onDownloadComplete]]
|
||||||
|
*aria2.onDownloadComplete* ('event')
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This notification will be sent if a download is completed. In
|
||||||
|
BitTorrent downloads, this notification is sent when the download is
|
||||||
|
completed and seeding is over. The 'event' is the same struct of the
|
||||||
|
'event' argument of *<<aria2_rpc_aria2_onDownloadStart,
|
||||||
|
aria2.onDownloadStart>>* method.
|
||||||
|
|
||||||
|
[[aria2_rpc_aria2_onDownloadError]]
|
||||||
|
*aria2.onDownloadError* ('event')
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This notification will be sent if a download is stopped due to error.
|
||||||
|
The 'event' is the same struct of the 'event' argument of
|
||||||
|
*<<aria2_rpc_aria2_onDownloadStart, aria2.onDownloadStart>>* method.
|
||||||
|
|
||||||
|
[[aria2_rpc_aria2_onBtDownloadComplete]]
|
||||||
|
*aria2.onBtDownloadComplete* ('event')
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This notification will be sent if a download is completed in
|
||||||
|
BitTorrent (but seeding may not be over). The 'event' is the same struct
|
||||||
|
of the 'event' argument of *<<aria2_rpc_aria2_onDownloadStart,
|
||||||
|
aria2.onDownloadStart>>* method.
|
||||||
|
|
||||||
Sample XML-RPC Client Code
|
Sample XML-RPC Client Code
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue