Dunque, sto creando un IRC bot con PHP usando i socket...sono riuscito a farlo joinare nel canale stabilmente, senza problemi di ping timeout, ma non riesco ancora a fargli riconoscere i messaggi che gli arrivano...come posso fare ?
vi posto il codice del bot:
codice:
<?php
//CONFIGURAZIONE
$nick = '[TESTBOT2]';
$server = 'irc.oltreirc.net';
$chan = '#botphp';
$port = '6667';
$realname = 'lol';
//END CONFIG
$ip = gethostbyname($server);
$timeout = 60;
// open a socket connection to the IRC server
$fp = fsockopen($ip, $port, $errno, $errstr, $timeout);
if (!$fp) {
echo $errstr." (".$errno.")
\n";
} else {
// write data through the socket to join the channel
fwrite($fp, "NICK ".$nick."\r\n");
fwrite($fp, "USER ".$nick." ".$server." bla :".$realname."\r\n");
fwrite($fp, "JOIN :".$chan."\r\n");
// write data through the socket to print text to the channel
fwrite($fp, "PRIVMSG ".$chan." :Hello There!\r\n");
fwrite($fp, "PRIVMSG ".$chan." :I am a bot\r\n");
// loop through each line to look for ping
while (!feof($fp)) {
$line = fgets($fp, 128);
echo nl2br($line);
$line = explode(" ", $line);
echo $line[0]."\n";
if ($line[0]=="PING") {
fwrite($fp, "PONG ".$line[1]."\r\n");
}
if ($line[0]=="!disconnect") {
fwrite($fp, "PRIVMSG ".$chan." :ByeBye!\r\n");
fwrite($fp, "QUIT \r\n");
fclose($fp);
}
}
fclose($fp);
}
?>