Javascript et HTML5 Technologies
Evénements envoyés par le serveur - SSE
Afficher sur la page les dernières versions de package de serveur
Nous voulions un affichage sur le site Web qui montrerait les versions de tous les principaux logiciels que nous avions installés sur le serveur. Nous déterminerions les paquets que nous voulions suivre, et après cela, l'affichage Web devrait automatiquement se mettre à jour régulièrement. (Nous en montrons juste quelques-uns ici).
Linux shell script
Une tâche Crontab a été configurée pour exécuter un script shell Linux régulièrement. Le script effectue les tâches suivantes:
- Trouver des versions d'une liste prédéterminée de progiciels, et extraire ces numéros de version à partir de quantités variables de texte auxiliaire
- Créez des paires valeur / clé des noms de paquetages et des numéros de versions et ajoutez une mise en forme html de base
- Stockez-les comme une seule chaîne dans un fichier journal simple. Nous aurions pu utiliser JSON.
Evénements et Client Listeners
Nous avons créé un fichier côté serveur (en PHP) qui serait la source des événements, ce qui permettrait d'accéder aux données de deux événements distincts:
Lorsque le client accède au fichier côté serveur, ce dernier renvoie un simple message HTTP comprenant:
- La chaîne générée par Crontab, qui afficherait les versions du paquet
- Une fonction horaire qui montrerait l'heure du serveur
L'en-tête text / event-stream, lu par le navigateur, oblige ce dernier à se reconnecter constamment au fichier côté serveur. La période de reconnexion peut être contrôlée et ici, nous avons fixé cela à environ 5 secondes.
- Un en-tête - Content-Type: texte / flux d'événements
- Deux blocs d'événement de code qui spécifient les données pour les deux événements à savoir. la chaîne de versions, et l'heure du serveur
Dans les pages Web du client, nous créons un objet EventSource à l'aide d'un script JS et cet objet EventSource pointe vers le fichier côté serveur et crée également des écouteurs pour les deux événements.
Si aucun événement séparé n'a été spécifié dans le fichier serveur, 'onmessage' aurait pu être utilisé à la place des écouteurs, mais comme nous avons nommé deux événements distincts, nous utilisons addEventListener (eventname, ...) avec EventSource dans le script js.
Ces événements apparaissent ci-dessous sous la forme d'une liste de packages et de versions, et d'une heure.
La restriction de cette méthode est que les deux événements sont actualisés au même rythme ... au fur et à mesure que la page se recharge.
Rapport de version du package de serveur automatisé
Les versions installées sont:
SSE inactif
Mise à jour
L'heure du serveur est:
SSE inactif
Pour Fermer La Connection