Virtual Cash Recycler
Virtual Cash Recycler (VCR) est une application de bureau Flutter (Windows/Android/iOS) qui émule un distributeur-recycleur de billets/pièces physique. Elle se connecte via un WebSocket à un pilote/serveur CashMag, s'identifie à l'aide d'un handshake HELLO/IAM, puis traite les requêtes OPENDEPOSITS, CLOSEDEPOSITS et DISPENSE afin qu'un opérateur puisse virtuellement introduire ou distribuer des billets et des pièces dans de nombreuses devises.
WebSocket avec fonctionnalité de reconnexion automatique
Le singleton WebSocketManager gère la connexion, effectue la procédure de connexion HELLO → WHOAREYOU → IAM → WELCOME, puis route les messages CALL/RESULT vers des stream typés. Il dispose d'une boucle de reconnexion infinie à intervalle fixe de 2 secondes et d'un _cancelController dédié qui se déclenche avant chaque nouveau event OPENDEPOSITS/DISPENSE reçu et à chaque déconnexion, afin que toute opération en cours dans l'interface utilisateur puisse être interrompue proprement.
Extraits de code
void _routeCallMessage(EventManager eventMessage) {
switch (eventMessage.function) {
case WebSocketMessages.GETPROPERTIES:
_getPropertiesRequestController.add(GetPropertiesRequest(eventMessage));
break;
case WebSocketMessages.OPENDEPOSITS:
_cancelController.add(null);
_openDepositsRequestController.add(OpenDepositsRequest(eventMessage));
break;
case WebSocketMessages.DISPENSE:
_cancelController.add(null);
_dispenseRequestController.add(DispenseRequest(eventMessage));
break;
...
}
}