Retour aux réalisations
CashMag·développeur alternant

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.

FlutterJavaCPPDart
1 / 2

WebSocket avec fonctionnalité de reconnexion automatique

Le singleton WebSocketManager gère la connexion, effectue la procédure de connexion HELLOWHOAREYOUIAMWELCOME, 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

Snippet du routage des messages vers différents streamdart
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;
    ...
  }
}