Android Team Documentation
ZKProto aims to provide a modern, fast and reliable server-centralized communication protocol for DB synchronization between clients (with/from ZKTeco devices that support it, or for other purposes too).
We use The Apache Thrift software framework, providing scalable cross-language services development.
ZKProto uses exclusively TCP as transport protocol. The underlying middleware Apache thrift supports a variety of transport protocols (HTTP, HTTPS…), but all are based on TCP. You can also implement your own transport TCP-based protocol if you need to.
ZKProto is a centralized protocol as shown in the above diagram, which means the clients never actually connect between themselves but all the synchronization is done through the server. The sole and unique purpose of the server is to keep all clients synchronized and handle any data conflicts that might arise. As an abstraction, you can think of the synchronization prodecure like all clients are actually using the same database.
NOTE: the server DB is private should never be accessed directly from any source that is not the ZKProto server itself.