2010-06-14 2 views
3

Я хочу, чтобы мой веб-сервер уведомлял меня через php-страницу, когда событие происходит на другом TCP-сервере, к которому страница PHP успешно подключилась через сокет. Событие похоже на то, что сервер TCP хочет отправить сообщение на веб-сервер и т. Д. Есть ли способ сделать это и/или какие-либо ссылки на то, как это сделать?Слушатель событий в PHP

ответ

2

Sure:

$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

Спасибо за ответ, не могли бы вы объяснить, что происходит в этом коде, пожалуйста? – Izza

+0

См. Записи руководства для fsockopen и fread (http://www.php.net/fsockopen и http://www.php.net/fread). Я исправил ошибку, 'fsockopen' должен использоваться вместо' fopen'. – Artefacto