feat: migration Socket.IO natif — login, terminaux REST, health check (closes #3)
Remplace toute la couche SignalR par une connexion Socket.IO directe au serveur Python (port 8004). Auth au handshake, reconnexion native illimitée, terminaux via REST GET /terminals. - socketio-adapter.js : connect/logoff/disconnect, events login_ok/login_error - main.js : initializeSocketIO, health check net.request, terminaux REST - renderer.js : IPC signalr-status → server-status - config.json : clé socketio (plus signalR) - Version 2.0.0
This commit is contained in:
48
renderer.js
48
renderer.js
@@ -29,18 +29,18 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||
versionLoginElement.textContent = `v${appVersion}`;
|
||||
}
|
||||
|
||||
// Initialiser l'indicateur SignalR
|
||||
// Initialiser l'indicateur de statut serveur
|
||||
|
||||
// Écouter les changements de statut SignalR
|
||||
ipcRenderer.on('signalr-status', (event, status) => {
|
||||
updateSignalRIndicator(status);
|
||||
// Recharger les terminaux à chaque changement de statut
|
||||
// Ecouter les changements de statut serveur
|
||||
ipcRenderer.on('server-status', (event, status) => {
|
||||
updateServerIndicator(status);
|
||||
// Recharger les terminaux a chaque changement de statut
|
||||
loadTerminals();
|
||||
});
|
||||
|
||||
// Obtenir le statut initial SignalR
|
||||
const initialStatus = await ipcRenderer.invoke('get-signalr-status');
|
||||
updateSignalRIndicator(initialStatus);
|
||||
// Obtenir le statut initial
|
||||
const initialStatus = await ipcRenderer.invoke('get-server-status');
|
||||
updateServerIndicator(initialStatus);
|
||||
|
||||
// Charger immédiatement les terminaux pour la page de login
|
||||
await loadTerminals();
|
||||
@@ -129,7 +129,7 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||
handleIncomingCall(callData);
|
||||
});
|
||||
|
||||
// Écouter les événements SignalR de basculement de centre
|
||||
// Ecouter les evenements de basculement de centre
|
||||
ipcRenderer.on('switch-to-center', (event, data) => {
|
||||
console.log('Basculement vers le centre:', data.centreName);
|
||||
|
||||
@@ -162,7 +162,7 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||
});
|
||||
});
|
||||
|
||||
// Connexion via SignalR
|
||||
// Connexion agent
|
||||
async function handleLogin(e) {
|
||||
e.preventDefault();
|
||||
|
||||
@@ -221,7 +221,7 @@ async function handleLogin(e) {
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
|
||||
try {
|
||||
// Préparer les credentials pour SignalR
|
||||
// Preparer les credentials
|
||||
const credentials = {
|
||||
email: accessCode, // Utiliser directement le code agent comme email
|
||||
password: password,
|
||||
@@ -229,7 +229,7 @@ async function handleLogin(e) {
|
||||
forceDisconnect: forceDisconnect // Ajouter l'option de déconnexion forcée
|
||||
};
|
||||
|
||||
// Appeler l'authentification SignalR
|
||||
// Appeler l'authentification
|
||||
const result = await ipcRenderer.invoke('login-agent', credentials);
|
||||
|
||||
if (result.success) {
|
||||
@@ -835,7 +835,7 @@ async function loadTerminals() {
|
||||
console.log('Chargement des terminaux...');
|
||||
|
||||
try {
|
||||
// Récupérer les terminaux depuis le serveur SignalR
|
||||
// Recuperer les terminaux depuis le serveur
|
||||
const terminals = await ipcRenderer.invoke('get-terminal-list');
|
||||
availableTerminals = terminals || [];
|
||||
console.log(`${terminals.length} terminaux récupérés`);
|
||||
@@ -1235,20 +1235,20 @@ function refreshCurrentWebview() {
|
||||
}
|
||||
}
|
||||
|
||||
// === GESTION INDICATEUR SIGNALR ===
|
||||
function updateSignalRIndicator(status) {
|
||||
// === GESTION INDICATEUR STATUT SERVEUR ===
|
||||
function updateServerIndicator(status) {
|
||||
const indicator = document.getElementById('signalrIndicator');
|
||||
const text = document.getElementById('signalrText');
|
||||
|
||||
|
||||
if (!indicator || !text) return;
|
||||
|
||||
// Réinitialiser les classes
|
||||
|
||||
// Reinitialiser les classes
|
||||
indicator.className = 'signalr-indicator';
|
||||
|
||||
|
||||
switch(status) {
|
||||
case 'connected':
|
||||
indicator.classList.add('connected');
|
||||
text.textContent = 'Connecté au serveur';
|
||||
text.textContent = 'Serveur connecte';
|
||||
break;
|
||||
case 'connecting':
|
||||
indicator.classList.add('connecting');
|
||||
@@ -1256,17 +1256,17 @@ function updateSignalRIndicator(status) {
|
||||
break;
|
||||
case 'disconnected':
|
||||
indicator.classList.add('disconnected');
|
||||
text.textContent = 'Serveur déconnecté';
|
||||
text.textContent = 'Serveur deconnecte';
|
||||
break;
|
||||
case 'error':
|
||||
indicator.classList.add('error');
|
||||
text.textContent = 'Erreur de connexion';
|
||||
text.textContent = 'Serveur injoignable';
|
||||
break;
|
||||
case 'disabled':
|
||||
indicator.classList.add('disabled');
|
||||
text.textContent = 'SignalR désactivé';
|
||||
text.textContent = 'Non configure';
|
||||
break;
|
||||
default:
|
||||
text.textContent = 'État inconnu';
|
||||
text.textContent = 'Etat inconnu';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user