php e socket

Luca(riello)

Nuovo Utente
15 Gen 2005
6
0
0
ciao a tutti :)
Vorrei fare una pagina che apra una connessione socket continua (senza chiusura se non quando si chiude la pagina) tra client e server, e fare in modo che ogni tot millisecondi il server faccia una ricerca sul database e mandi i risultati nuovi al client, attraverso questa connessione.

Qualcuno può farmi un semplicissimo esempio (senza gestione di errori, o ornamenti... mi interessa capire il codice) o almeno indirizzarmi su come realizzarlo?

Ho cercato in rete ma, a parte che i socket non sono ben visti da php, non ho trovato nessuna connessione che rimane aperta.
spero nel vostro aiuto :)
ciao,
Luca(riello)
 
Non Capisco l'utilita' di una connessione persistente tra Client e Server nel tuo caso.
Puoi semplicemente fare in modo che la pagina si ricarichi a intervalli regolari e interpelli il server sugli aggiornamenti.

Cosi' nn sprechi risorse del server inutilmente.
 
Dev2T ha scritto:
Non Capisco l'utilita' di una connessione persistente tra Client e Server nel tuo caso.

Vorrei fare un po' per sfizio e un po' per pratica una chat in php&mysql&javascript. Tramite un frame nascosto mi connetto al server e mi faccio dare "in tempo reale" e senza reload tutti i dati che vengono inseriti nel database (o almeno tutti quelli che servono), e col javascript li scrivo nel frame principale. Ovviamente potrei fare un reload del frame ogni secondo, sempre in javascript, ma sarebbe fastidioso lo stesso (con la barra di stato sempre visibile,vedi SP2, che oscilla tra "operazione completata" e "apertura in corso" accompagnato dal suono *TIC*). Per cui pensavo ad una connessione Socket, oppure un ciclo infinito:
while(true) {readDB(); usleep(n);}.
Ovviamente tutto questo su un server completamente dedicato e configurabile a mio piacimento. Ma cio' non toglie che vorrei comunque ottimizzare le risorse (altrimenti che pratica costruttiva sarebbe?), ma così facendo non penso proprio di farlo. Se hai qualche idea,,, :)
ciao,
Luca(riello)
 
ad ogni modo una normalissima connessione in tcp, si implementa con le funzioni per le socket:

// Crei il Socket:
$socket = fsockopen('host',porta);

poi usi fputs($socket, 'dati') o fwrite per inviare e fputs($socket, lunghezza) o fread (sintassi simile) per leggere.

fclose($socket) per chiudere il socket
:)

Per il resto basta che tu conosca un attimo come si implementa poi una comunicazione col mysqld.
 

Discussioni simili