je met rapidement ce tuto issu d'un texte de korben
j'en ai sorti un script qui crée le fichier html, le count.sh et un lanceur pour tester tant qu'on veut.
testé sous mon Ubuntu 14.04... ce tuto est juste pour mémo
NB : Bien penser à télécharger l'exécutable et le mettre dans un dossier accessible au path..., l'installeur le met dans ~/bin
Pour simplifier (j'espère)... juste à suivre ces lignes :
créer un dossier
mkdir ~/bin
mkdir ~/bin/test
cd ~/bin/test
Télécharger l'archive
wget "https://github.com/joewalnes/websocketd/releases/download/v0.2.12/websocketd-0.2.12_amd64.deb"
extraire tout (on peut aussi lancer l'installation)
dpkg-deb -x websocketd-0.2.12_amd64.deb "$PWD/"
mettre ce script dedans.
mv usr/bin/websocketd "$PWD"
on peut supprimer le dossier créé lors de la décompression
rm -f usr/
gedit "installeur.sh"
et copier ce texte : installeur.sh
#!/bin/bash
# ----------------------------------------------
nomlogiciel="$(basename "$0")"
# FONCTION=""
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# à mettre au début d'un fichier bash
#PID=$$
#FIFO=/tmp/FIFO${PID}
#mkfifo ${FIFO}
# ----------------------------------------------
echo "lancement $nomlogiciel..."
# Création du lanceur
echo """#!/bin/bash
# Lancez websocketd comme ceci en précisant le port et le programme à exécuter :
websocketd --port=8080 --staticdir=. ./count.sh &
firefox "decompte.html"
exit 0
""" | tee lanceur.sh
chmod +x lanceur.sh
exit
touch count.sh
echo """#!/bin/bash
echo bonjour
sleep 1
echo monde
sleep 1
echo bonjour monde
sleep 1
for COUNT in $(seq 1 10); do
echo $COUNT
sleep 1
done
""" | tee count.sh
chmod +x count.sh
# ./count.sh
# page en javascript
echo """<!DOCTYPE html>
<html>
<head>
<title>websocketd count exemple</title>
<style>
#count {
font: bold 150px arial;
margin: auto;
padding:10px;
text-align: center;
}
</style>
</head>
<body>
<div id="count"></div>
<script>
var ws = new WebSocket('ws://localhost:8080/');
ws.onopen = function() {
document.body.style.backgroundColor = '#cfc';
};
ws.onclose = function() {
document.body.style.backgroundColor = null;
};
ws.onmessage = function(event) {
document.getElementById('count').textContent = event.data;
};
</script>
</body>
</html>
""" | tee "decompte.html"
# Création du lanceur
echo """#!/bin/bash
# Lancez websocketd comme ceci en précisant le port et le programme à exécuter :
firefox "decompte.html" &
websocketd --port=8080 --staticdir=. ./count.sh
exit 0
""" | tee lanceur.sh
chmod +x lanceur.sh
mkdir ~/bin
cp websocketd ~/bin
./lanceur.sh
exit 0
Rendre le fichier exécutable :
chmod +x installeur.sh
lancez !
./installeur.sh
... Ce dossier, dont l'installeur, est réutilisable !
et pour tester :
./lanceur.sh