Files
SimpleClient-releases/CLAUDE.md
Pierre Marx 72514cc578 feat: aligner event handler Socket.IO sur le contrat snake_case (#20)
- Ecouter call_event au lieu de ipbx_event
- Lire event_code, queue_name, terminal en snake_case
- handleCallPickedUp/handleCallHungUp utilisent event.queue_name
- renderer.js lit data.queue_name
- 3 tests unitaires ajoutés dans socketio-adapter.test.js
2026-03-19 12:32:30 -04:00

2.1 KiB

SimpleClient

Application desktop de télésecrétariat pour les postes RDVPREM.

Stack

  • Electron 28 + Socket.IO (socket.io-client 4.8.1) + Choices.js 11.1.0
  • HTML/CSS/JavaScript natif (pas de framework frontend)

Structure

├── main.js              # Process principal — Socket.IO, IPC, fenêtres
├── socketio-adapter.js  # Adaptateur Socket.IO (connect/logoff/disconnect)
├── renderer.js          # Process renderer — UI, webviews
├── index.html           # Structure HTML
├── styles-modern.css    # Styles CSS
├── config.json          # Config Socket.IO (serverUrl, serviceProvider)
└── notes/               # Stockage notes agents (notes_{agentId}.json)

Commandes

bun run dev              # Mode dev avec DevTools
bun start                # Production
bun run build            # Build toutes plateformes
bun run build:linux      # Build Linux (AppImage, .deb, .rpm)
bun run build:mac        # Build macOS (.dmg, .app)

Tests

bun test                 # 8 tests unitaires socketio-adapter
  • socketio-adapter.js accepte un socket factory en 2e param (injection pour tests)
  • Fake socket avec EventEmitter minimal dans socketio-adapter.test.js

Points d'attention

  • Pas d'emojis dans l'UI — icônes SVG inline (compatibilité Linux)
  • Sessions webview isolées : partition Electron unique par centre, auto-connexion via preload script
  • Socket.IO reconnexion : illimitée (2s→10s backoff)
  • IPC principal : login-agent, get-terminal-list, server-status, switch-to-center, release-center
  • Protocole serveur : auth au handshake, events login_ok/login_error/call_event/logoutlogout_ok (champs snake_case : event_code, queue_name, terminal)
  • Terminaux : REST GET /terminals?provider=RDVPREM (pas Socket.IO)
  • Logs : ~/.simpleconnect-ng/socketio.log
  • Notes : sauvegarde auto après 2s d'inactivité, 50 versions, sync localStorage + fichier

Workflow de développement

Voir .claude/commands/dev.md pour le guide complet.