readme
parent
7678a8ab7a
commit
091d01ef58
|
@ -2,34 +2,27 @@
|
|||
|
||||
## how things happen
|
||||
|
||||
* Service : daemon providing a feature (windowing, audio, …)
|
||||
* Service: daemon providing a feature (windowing, audio, pubsub, …)
|
||||
* Application: specific application (browser, instant messaging, …)
|
||||
|
||||
* [service] : service name
|
||||
* $pid : application PID
|
||||
* $index : process index (application point of view)
|
||||
* service: service name
|
||||
* index: process index (to launch a service several times)
|
||||
* version: service version
|
||||
|
||||
1. Service creates a pipe named /tmp/[service]
|
||||
2. Application creates pipes named /tmp/$pid-$index-$version-{in,out}
|
||||
3. Application sends in /tmp/[service] : $pid $index $version
|
||||
1. Service creates a unix socket /tmp/service-index-version.sock
|
||||
2. Application connects to /tmp/service-index-version.sock
|
||||
|
||||
## pure "networking" view (what should go in the pipes)
|
||||
## pure "networking" view (what should go in the sockets)
|
||||
|
||||
1. Application sends in /tmp/[service] : $pid $index $version [...]
|
||||
1. Application connects to /tmp/service-index-version.sock
|
||||
1. Service acknowledges (empty message)
|
||||
|
||||
# messages format
|
||||
|
||||
First of all, the application will send a message to the service's pipe in **plain text** with its PID, the number of time the process already used the service (index) and the version of the communication protocol we want to use between the application and the service.
|
||||
|
||||
In order to communicate between the application and the service, we use the [CBOR format (RFC 7049)][cbor].
|
||||
In order to communicate between the application and the service, we use the Type-Length-Value format.
|
||||
This will be used with some conventions.
|
||||
|
||||
## CBOR install, programming, debug
|
||||
|
||||
[libcbor][libcbor] is used in the provided implementations.
|
||||
It is an [extensively documented][libcbor-doc] library, easy to install and to work with.
|
||||
|
||||
We also strongly encourage the use of the [cbor-diag][cbor-diag] to ensure that you send and receive correctly formatted messages.
|
||||
## programming, debug
|
||||
|
||||
## overview
|
||||
|
||||
|
@ -41,16 +34,8 @@ The type will be a simple byte :
|
|||
* <16 - 127> : later use
|
||||
* <128 - 255> : application specific (windowing system, audio system, …)
|
||||
|
||||
## CBOR type convention
|
||||
|
||||
0 - 15
|
||||
|
||||
index | abbreviation | semantic
|
||||
0 | close | to close the communication between the application and the service
|
||||
1 | message | to send data
|
||||
2 | error | to send an error message
|
||||
|
||||
[cbor]: https://tools.ietf.org/html/rfc7049
|
||||
[cbor-diag]: https://github.com/cabo/cbor-diag
|
||||
[libcbor]: https://github.com/PJK/libcbor
|
||||
[libcbor-doc]: https://github.com/PJK/libcbor
|
||||
3 | ack | to send an acknowledgment
|
||||
|
|
Reference in New Issue