Changes between Version 14 and Version 15 of GuiRpcProtocol
- Timestamp:
- Sep 9, 2008, 8:13:53 AM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GuiRpcProtocol
v14 v15 8 8 == Basic structure == 9 9 10 The protocol is based on XML, and it's strictly request-reply. The client sends requests to the server, and waits for a reply; the server never sends a reply without getting a request from the client first. Both requests and replies are terminated with the control character `0x03`. Requests are inside `<boinc_gui_rpc_request>` elements, and replies from the client are inside `<boinc_gui_rpc_reply>` elements (in both cases there is a `0x03` byte after the closing tag).10 The protocol is based on XML, and it's strictly request-reply. The client sends requests to the server, and waits for a reply; the server never sends a reply without getting a request from the client first. Both requests and replies are terminated with the control character `0x03`. 11 11 12 Note that the core client (RPC server) doesn't support pipelining of requests (pipelining means sending a batch of multiple requests without waiting for a reply, then getting all the replies together; this improves latency). For compatibility, pipelining must not be used.12 Requests are inside `<boinc_gui_rpc_request>` elements, and replies from the RPC server are inside `<boinc_gui_rpc_reply>` elements (in both cases there is a `0x03` byte after the closing tag). The current core client doesn't require the `<boinc_gui_rpc_request>` tag, which is handy for debugging (you can connect via [http://netcat.sourceforge.net/ netcat] and just type `<auth1/>`); however, clients must not rely on this, and must always send the `<boinc_gui_rpc_request>` root tag. 13 13 14 To terminate the RPC session, just close the connection on the client side. Warning: some protocols have a specific "quit" command for this. The GUI RPC protocol has a {{{<quit/>}}} command, but it has a completely different purpose: telling the core client to quit. 14 The current official core client (RPC server) doesn't support pipelining of requests (pipelining means sending a batch of multiple requests without waiting for a reply, then getting all the replies together; this improves latency). For compatibility, pipelining must not be used. 15 16 To terminate the RPC session, just close the connection on the client side. Warning: some protocols have a specific "quit" command for this. The GUI RPC protocol has a {{{<quit/>}}} command, but it has a completely different purpose: telling the core client to quit! 15 17 16 18 == Common replies ==