Cambiare stato di un pulsante

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ciao a tutti,

tramite PHP lancio un comando python passando tramite $_GET un valore reperito da database per attivare un led connesso a raspberry PI. Il problema nasce nel momento in cui un secondo utente va ad intervenire sullo stesso pulsante. Praticamente:

- clicco il pulsante 1, questo cambia colore da verde a rosso per segnalare il fatto che il led è acceso.
- un secondo utente si connette alla pagina e clicca sul pulsante (che vede rosso) e spegne il led.
- se rimango sulla pagina sono obbligato a fare un refresh della pagina.

Per tamponare ho impostato un refresh automatico ogni 30 secondi ma è una soluzione che non mi piace. Avete qualche valida alternativa al problema?
 
Ciao neo996sps,
ci sono varie valide alternative, ma tutte richiedono un po' di programmazione in più.
Te ne elenco alcune:
- websocket: la migliore, standardizzata dall W3C (e l'unica che conosco abbastanza bene)
- Adobe Flash socket
- AJAX long polling
- AJAX multipart streaming
- JSONP Polling

Ho trovato queste tempo fa su un altro forum essendo interessato anche io ad una comunicazione in tempo reale tra client e server.
Spero di esserti stato d'aiuto...
 
Ciao,

stavo studiando il discorso websocket. Ho giocato con questo codice che ho trovato:

Codice:
<!doctype html>
<html>
<head>
    <title> WebSocket: Echo Server </title>
    <script>
        append = function(text){
            document.getElementById("eventi_websocket").insertAdjacentHTML('beforeend',
                    "<li>" + text + ";</li>"
            );
        }
        window.onload = function(){
            var echo_service = new WebSocket('ws://echo.websocket.org');
            echo_service.onmessage = function(event){
                append("ricevuto")
                alert(event.data);
                echo_service.close();
            }
            echo_service.onopen = function(){
                append("connesso")
                echo_service.send("hello!");
            }
            echo_service.onclose = function(){
                append("disconnesso");
            }
            echo_service.onerror = function(){
                append("errore");
            }
        }
    </script>
</head>
<body>
<ul id="eventi_websocket">
</ul>
</body>
</html>

ora però vorrei sapere come lo posso adattare al mio codice:

Codice:
<form
                                method='post' enctype='multipart/form-data'
                                name='".$exp_linee["linea"]."'
                                action='attiva.php?codlinea=".$exp_linee["id"]."&pin=".$exp_linee["pin"]."'
<input class='pulsante-disattivato' type='submit' value='".$exp_linee["linea"]."' />
</form>
 
Niente di fatto, non riesco ad integrare in questo codice

PHP:
$linee = mysql_query("SELECT * FROM tblLinee ORDER BY id");
while($exp_linee = mysql_fetch_array($linee))
{
    switch ($exp_linee["attivo"])
    {
        case 0:
            print("

                    <form
                                method='post' enctype='multipart/form-data'
                                name='".$exp_linee["linea"]."'
                                id='eventi_websocket'
                                action='attiva.php?codlinea=".$exp_linee["id"]."&pin=".$exp_linee["pin"]."' >");
            print("<input class='pulsante-disattivato' type='submit' value='".$exp_linee["linea"]."' />
            ");
            print("</form>");

            break;
        case 1:
            print("<form
                                method='post' enctype='multipart/form-data'
                                name='".$exp_linee["linea"]."'
                                id='eventi_websocket'
                                action='disattiva.php?codlinea=".$exp_linee["id"]."&pin=".$exp_linee["pin"]."' >");
            print("<input class='pulsante-attivato' type='submit' value='".$exp_linee["linea"]."' />");
            print("</form>");
            break;
    }

}
?>

i websocket. Qualche anima pia mi può fare un esempio?
 

Discussioni simili