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