PDA

View Full Version : client irc in php?


SteR9
25-05-2004, 17:02
secondo voi tramite i socket in php sarebbe possibile creare un client irc?io ho provato ma ho visto che i dati vanno letti appena viene eseguita la pagina e poi va chiuso il socket quindi non si può tenere aperto il socket e fare una lettura continua...quindi non c'è modo vero?
mi sono spiegato un pò male forse ma sono di fretta :sofico:
ciao:)

Nightingale
26-05-2004, 13:13
Originariamente inviato da SteR9
secondo voi tramite i socket in php sarebbe possibile creare un client irc?io ho provato ma ho visto che i dati vanno letti appena viene eseguita la pagina e poi va chiuso il socket quindi non si può tenere aperto il socket e fare una lettura continua...quindi non c'è modo vero?
mi sono spiegato un pò male forse ma sono di fretta :sofico:
ciao:)

ciao stavo cercando anche io una cosa del genere.. ti regalo un Up, e se troviamo qualcosa magari aggiorniamoci. :D

cionci
26-05-2004, 14:49
E metere il descrittore del socket nella sessione ? Comunque è un casotto...

SteR9
26-05-2004, 15:04
Originariamente inviato da cionci
E metere il descrittore del socket nella sessione ? Comunque è un casotto...
mi sa che è impossibile da fare..perchè bisognerebbe tenere aperto il socket ma una volta eseguita la pagina il socket va chiuso quindi mi sa che non c'è modo...
in che senso mettendolo nella sessione?

VICIUS
26-05-2004, 15:46
Non so quanto vi possa essere utile ma tempo fa trovai questo su pear.php.net http://pear.php.net/package/Net_SmartIRC

ciao ;)

McK
26-05-2004, 16:40
Si è possibile (in linea teorica). Lanciata la pagina si manda una sorta di holder del socket (un loop infinito) che tiene aperto il socket. Il problema grosso è che va solo in locale perchè nessun server php (a meno che sia tuo) permette di gestire i socket!
Ciao, McK

SteR9
27-05-2004, 07:26
Originariamente inviato da McK
Lanciata la pagina si manda una sorta di holder del socket (un loop infinito) che tiene aperto il socket.
come si potrebbe fare??dammi una dritta ;)
grazie,ciao! :)

cionci
27-05-2004, 09:03
Mi è venuta un'idea... Fai 4 frame... Uno con la lista dei nomi, uno con il contenuto del canale (queste due pagine le fair icaricare automaticamente ogni 3-4 secondi), uno con la form di input ed uno (di grandezza 0) con il motore IRC che gira all'infinito...
Per evitare che lo script vada in timeout devi disattivare il timout dello script modificando l'opportuno parametro tramite codice (a runtime e solo per quella pagina)... Mandi los cript in Sleep per 500 ms e poi cominci a scaricare dal socket i pacchetti per altri 500 ms e ti riaddormenti (questo serve per non impegnare troppo il server web)...

SteR9
27-05-2004, 09:55
Originariamente inviato da cionci
Mi è venuta un'idea... Fai 4 frame... Uno con la lista dei nomi, uno con il contenuto del canale (queste due pagine le fair icaricare automaticamente ogni 3-4 secondi), uno con la form di input ed uno (di grandezza 0) con il motore IRC che gira all'infinito...
Per evitare che lo script vada in timeout devi disattivare il timout dello script modificando l'opportuno parametro tramite codice (a runtime e solo per quella pagina)... Mandi los cript in Sleep per 500 ms e poi cominci a scaricare dal socket i pacchetti per altri 500 ms e ti riaddormenti (questo serve per non impegnare troppo il server web)...
ma così perderei dei messaggi no?perchè magari durante lo sleep arriva un messaggio e lo perdo...per mandare lo script in sleep dovrei disconnettermi?

cionci
27-05-2004, 12:10
No...non devi diconnetterti... Se non arrivano molti messaggi il buffer del sistema operativo dovrebbe permetterti un certo margine...