2010-06-14 5 views
3

Je veux que mon serveur web me prévienne via une page php lorsqu'un événement se produit sur un autre serveur TCP, auquel la page PHP s'est connectée avec succès via un socket. L'événement est comme le serveur TCP veut envoyer un message au serveur Web, etc. Y at-il un moyen d'accomplir ceci et/ou des références sur la façon de le faire?Event Listener en PHP

Répondre

2

Bien sûr:

$fp = fsockopen("tcp://example.com", 8888) OR die("could not connect"); 
while (!feof($fp)) { 
    $pc = fread($handle, 8192); 
    if ($pc === false || strlen($pc) == 0) 
     break; 
    //a new packet has arrived 
    //you should collect the read in a variable and wait 
    //for another packet until you know the message is complete 
    //(depends on the protocol) 
    collect_in_result($pc); 
    if (message_is_complete()) { 
     if (check_event()) { 
      //take action 
     } 
    } 
} 
+0

Merci pour la réponse, pourriez-vous s'il vous plaît expliquer dans ce code se s'il vous plaît? – Izza

+0

Voir les entrées manuelles pour fsockopen et fread (http://www.php.net/fsockopen et http://www.php.net/fread). J'ai corrigé une erreur, 'fsockopen' doit être utilisé à la place de' fopen'. – Artefacto