rendered paste body
<?php
/*
DB Connectivity here
*/
DEFINE ('DB_USER_READONLY', '...');
DEFINE ('DB_PASS_READONLY', '...');
DEFINE ('DB_NAME', '...');
DEFINE ('DB_HOST', 'localhost');
function db_connect(){
$db_user = DB_USER_READONLY;
$db_pass = DB_PASS_READONLY;
$DBC = mysql_connect(DB_HOST, $db_user, $db_pass);
$DBS = mysql_select_db(DB_NAME);
if(($DBC != false) && ($DBS != false)){
return true;
}else{
return false;
}
}//ENDFUNCTION
if(!db_connect()){
print_r("COULD NOT ESTABLISH DATABASE CONNECTION. DYING\n");
die();
}else{
print_r("DATABASE CONNECTION ESTABLISHED.\n");
}//ENDIF
/*
Sockets Server goes Here
*/
error_reporting(E_ALL);
ob_implicit_flush();
$address = '...';
$port = 9999;
function send_Push_Message(&$allclient) {
print_r("starting push update\n");
$resource = mysql_query("......;");
while($row = mysql_fetch_assoc($resource)){
$buffer .= '<team ';
$buffer .= 'name="'.$row['Name'].'" ';
$buffer .= 'P="'.$row['P'].'" ';
if($row['gf']>$row['ga']){$buffer.='W="'.($row['W']+1).'" ';}else{$buffer .= 'W="'.$row['P'].'" ';}
if($row['gf']==$row['ga']){$buffer.='D="'.($row['D']+1).'" ';}else{$buffer .= 'D="'.$row['D'].'" ';}
if($row['gf']<$row['ga']){$buffer.='L="'.($row['L']+1).'" ';}else{$buffer .= 'L="'.$row['L'].'" ';}
$buffer .= 'GF="'.$row['GFTODAY'].'" ';
$buffer .= 'GA="'.$row['GATODAY'].'" ';
$buffer .= 'GD="'.$row['GDTODAY'].'" ';
$buffer .= 'PTS="'.$row['ptslive'].'" ';
$buffer .= '/>';
}
$buffer .= '</table>';
$buffer .= '<results>';
$resource = mysql_query("...");
if(mysql_num_rows($resource)>0){
while($row = mysql_fetch_assoc($resource)){
$buffer .= '<game hometeam="'.$row['hteam'].'" hscore="'.$row['hgoals'].'" awayteam="'.$row['ateam'].'" ascore="'.$row['agoals'].'" />';
}
}
$buffer .= '</results>';
$buffer .= '</league>';
$buffer.='</update>';
print_r(mysql_error());
print_r($allclient);
foreach($allclient as $client) {
$removethese = array();
$ret = @socket_write($client, $buffer.chr(0));
if($ret===FALSE){
print_r($client." IS CLOSED\n");
//REMOVE $client FROM $pushclients-----------
$index = array_search($client,$allclient);
unset($allclient[$index]);
}//ENDIF
}//ENDFOREACH
}//ENDFUNCTION
function initialise_client($client){
$resource = mysql_query("...");
$buffer = '<initalise>';
while($row = mysql_fetch_assoc($resource)){
switch(strtoupper($row['event'])){
case 'ABANDONED':
$buffer.= '<abdn scorer="'.$row['ScoringTeam'].'" score="'.$row['scoreHome'].'-'.$row['scoreAway'].'" goaltime="'.$row['GoalTime'].'" homeid="'.$row['HomeTeamID'].'" awayid="'.$row['AwayTeamID'].'" scoreteam="'.$row['ScoringTeam'].'" hometeam="'.htmlentities($row['HomeTeam']).'" awayteam="'.htmlentities($row['AwayTeam']).'" player="'.$row['comment'].'" />';
break;
case 'FULLTIME':
$buffer.= '<result scorer="'.$row['ScoringTeam'].'" score="'.$row['scoreHome'].'-'.$row['scoreAway'].'" goaltime="'.$row['GoalTime'].'" homeid="'.$row['HomeTeamID'].'" awayid="'.$row['AwayTeamID'].'" scoreteam="'.$row['ScoringTeam'].'" hometeam="'.htmlentities($row['HomeTeam']).'" awayteam="'.htmlentities($row['AwayTeam']).'" player="'.$row['comment'].'" />';
break;
case 'REDCARD':
$buffer.= '<rc scorer="'.$row['ScoringTeam'].'" score="'.$row['scoreHome'].'-'.$row['scoreAway'].'" goaltime="'.$row['GoalTime'].'" homeid="'.$row['HomeTeamID'].'" awayid="'.$row['AwayTeamID'].'" scoreteam="'.$row['ScoringTeam'].'" hometeam="'.htmlentities($row['HomeTeam']).'" awayteam="'.htmlentities($row['AwayTeam']).'" player="'.$row['comment'].'" />';
break;
case 'YELLOWCARD':
$buffer.= '<yc scorer="'.$row['ScoringTeam'].'" score="'.$row['scoreHome'].'-'.$row['scoreAway'].'" goaltime="'.$row['GoalTime'].'" homeid="'.$row['HomeTeamID'].'" awayid="'.$row['AwayTeamID'].'" scoreteam="'.$row['ScoringTeam'].'" hometeam="'.htmlentities($row['HomeTeam']).'" awayteam="'.htmlentities($row['AwayTeam']).'" player="'.$row['comment'].'" />';
break;
case 'GOAL':
$buffer.= '<goal scorer="'.$row['ScoringTeam'].'" score="'.$row['scoreHome'].'-'.$row['scoreAway'].'" goaltime="'.$row['GoalTime'].'" homeid="'.$row['HomeTeamID'].'" awayid="'.$row['AwayTeamID'].'" scoreteam="'.$row['ScoringTeam'].'" hometeam="'.htmlentities($row['HomeTeam']).'" awayteam="'.htmlentities($row['AwayTeam']).'" player="'.$row['comment'].'" />';
break;
}
}//ENDWHILE
for($leagueid = 1;$leagueid<7;$leagueid++){
$buffer .= '<league id="'.$leagueid.'">';
$buffer .= '<table>';
$resource = mysql_query("...");
while($row = mysql_fetch_assoc($resource)){
$buffer .= '<team ';
$buffer .= 'name="'.$row['Name'].'" ';
$buffer .= 'P="'.$row['P'].'" ';
if($row['gf']>$row['ga']){$buffer.='W="'.($row['W']+1).'" ';}else{$buffer .= 'W="'.$row['P'].'" ';}
if($row['gf']==$row['ga']){$buffer.='D="'.($row['D']+1).'" ';}else{$buffer .= 'D="'.$row['D'].'" ';}
if($row['gf']<$row['ga']){$buffer.='L="'.($row['L']+1).'" ';}else{$buffer .= 'L="'.$row['L'].'" ';}
$buffer .= 'GF="'.$row['GFTODAY'].'" ';
$buffer .= 'GA="'.$row['GATODAY'].'" ';
$buffer .= 'GD="'.$row['GDTODAY'].'" ';
$buffer .= 'PTS="'.$row['ptslive'].'" ';
$buffer .= '/>';
}
$buffer .= '</table>';
$buffer .= '<results>';
$resource = mysql_query("...");
if(mysql_num_rows($resource)>0){
while($row = mysql_fetch_assoc($resource)){
$buffer .= '<game hometeam="'.$row['hteam'].'" hscore="'.$row['hgoals'].'" awayteam="'.$row['ateam'].'" ascore="'.$row['agoals'].'" />';
}
}
$buffer .= '</results>';
$buffer .= '</league>';
}
$buffer.='</initialise>';
socket_write($client, $buffer.chr(0));
}//ENDFUNCTION
$master = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$localsock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$fulltimesock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($master, SOL_SOCKET,SO_REUSEADDR, 1);
socket_set_option($master, SOL_SOCKET,SO_KEEPALIVE, 1);
socket_bind($master, $address, $port);
socket_bind($localsock,"127.0.0.1",9998);
socket_listen($localsock,SOMAXCONN);
socket_listen($master, SOMAXCONN);
$pushclients = array($master);
//---- Create Persistent Loop to continuously handle incoming socket messages ---------------------
while (true) {
$changed_sockets = array($master, $localsock);
$num_changed_sockets = socket_select($changed_sockets, $write = NULL, $except = NULL, NULL);
if($num_changed_sockets===false){
print_r("FATAL ERROR");
}//ENDIF
foreach($changed_sockets as $socket){
if ($socket == $master){
if (($client = socket_accept($master)) < 0) {
print_r("socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n");
continue;
} else {
print_r("new connection accepted: ".$client."\n");
initialise_client($client);
array_push($pushclients, $client);
}//ENFIF
}elseif($socket = $localsock){
if (($client = socket_accept($localsock)) < 0) {
print_r("socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n");
continue;
} else {
print_r("Current Conenctions: ".sizeof($pushclients)."\n");
send_Push_Message(&$pushclients);
socket_write($client,"received".chr(0));
socket_close($client);
}//ENDIF
}else{
$bytes = socket_recv($socket, $buffer, 2048, 0);
if ($bytes == 0) {
//do nothing with received data.
}//ENDIF
}//ENDIF
}//ENDFOREACH
}//ENDWHILE
?>