diff options
Diffstat (limited to 'doc/afb-application-writing.md')
-rw-r--r-- | doc/afb-application-writing.md | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/doc/afb-application-writing.md b/doc/afb-application-writing.md index a7099a86..7d2cd635 100644 --- a/doc/afb-application-writing.md +++ b/doc/afb-application-writing.md @@ -1,11 +1,42 @@ HOWTO WRITE an APPLICATION above AGL FRAMEWORK ============================================== version: 1 - Date: 29 mai 2016 + Date: 30 mai 2016 Author: José Bollo TABLE-OF-CONTENT-HERE +Writing an HTML5 application +---------------------------- + +Developpers of HTML5 applications (client side) can easyly create +applications for AGL framework using their prefered +HTML framework. + +Developpers can also create powerful server side plugins to improve +their application. This server side plugin should return the mime-type +application/json and can be accessed either by HTTP or by Websockets. + +In a near future, the JSON-RPC protocol will be available together +with the current x-afb-json1 protocol. + +Two examples of HTML5 applications are given: + +- [afb-client](https://github.com/iotbzh/afb-client) a simple "hello world" application + +- [afm-client](https://github.com/iotbzh/afm-client) a simple "Home screen" application + +Writing a Qt application +------------------------ + +Writing Qt applications is also possible because Qt offers APIs to +make HTTP queries and to connect using WebSockets. + +It is even possible to write a QML application. +It is demontrated by the sample application token-websock: + +- [token-websock](https://github.com/iotbzh/afb-daemon/blob/master/test/token-websock.qml) +a simple "hello world" application in QML Writing a C application ----------------------- @@ -24,4 +55,23 @@ The current implementation use libsystemd and file descriptors. This may be changed in the future to also support secure sockets and being less dependant of libsystemd. +Handling sessions within applications +------------------------------------- + +### Exchanging tokens + +Applications are communicating with their binder afb-daemon using +a network connection or a kind of network connection (unix domain +socket isn't currently implemented but could be used in near future). +Also, HTTP protocol is not a connected protocol. It means that +the socket connection can not be used to authenticate a client. + +For this reason, the binder should authenticate the application +by using a commonly shared secret named token. + +At start, the framework communicate a common secret to both the binder +and its client: the application. When the application + +### Handling sessions + |