Le protocole Push ZKTeco explique
Une plongee en profondeur dans la facon dont les appareils ZKTeco communiquent via le protocole push — structure des paquets, flux de handshake et pourquoi la plupart des bibliotheques open source se trompent.
Qu'est-ce que le protocole push ?
Le protocole push ZKTeco (parfois appele PUSH SDK ou protocole iclock) est un mecanisme dans lequel l'appareil biometrique initie la connexion vers un serveur, plutot que le serveur interroge l'appareil. C'est fondamentalement different de l'approche SDK basee sur le mode pull.
En mode push, l'appareil envoie des requetes HTTP a une adresse serveur configuree a intervalles reguliers, transportant les journaux de pointage, l'etat de l'appareil et repondant aux commandes. Cela le rend ideal pour les deploiements cloud.
Structure des paquets
Chaque requete push de l'appareil contient un modele d'URL specifique et des donnees encodees en formulaire. Le handshake commence par une requete GET vers /iclock/cdata, a laquelle le serveur repond avec les parametres de configuration de l'appareil.
Les requetes suivantes incluent les donnees de pointage (POST vers /iclock/cdata), les informations de l'appareil (GET vers /iclock/getrequest) et les resultats des commandes (POST vers /iclock/devicecmd).
Le flux de handshake
1. L'appareil demarre et envoie GET /iclock/cdata?SN=XXXX au serveur
2. Le serveur repond avec la configuration : Stamp, OpStamp, ErrorDelay, Delay, TransTimes, TransInterval, TransFlag et Realtime
3. L'appareil commence a envoyer les donnees de pointage a l'intervalle configure
4. Entre les envois de donnees, l'appareil interroge GET /iclock/getrequest pour les commandes en attente
5. L'appareil execute les commandes et rapporte les resultats via POST /iclock/devicecmd
Pourquoi les bibliotheques open source echouent
La plupart des bibliotheques open source ZKTeco implementent le protocole UDP en mode pull, pas le protocole push. Les rares qui tentent de prendre en charge le protocole push presentent generalement les problemes suivants : implementation incomplete du handshake, absence de file d'attente de commandes, aucune logique de renvoi en cas d'echec de livraison, et incapacite a gerer plusieurs appareils simultanement.
Le moteur de protocole de PunchConnect gere tout cela — eprouve en production avec plus de 80 appareils envoyant des donnees en simultane.
Conclusion
Comprendre le protocole push est essentiel pour construire des integrations biometriques fiables. PunchConnect abstrait toute cette complexite derriere une API REST propre et un systeme de webhooks, pour que vous n'ayez jamais a manipuler des paquets de protocole bruts.