Показать сообщение отдельно

  #15  
Старый 27.03.2009, 20:51
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


По умолчанию

PHP код:
<?php     
/* Allow the script to hang around waiting for connections. */
set_time_limit(0);
@
ini_set("display_errors","1");

/* Turn on implicit output flushing so we see what we're getting
* as it comes in. */
ob_implicit_flush();

$JABBER_SERVER "jabber.ru";     
$PORT 5222;      
$i=0;      
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);       
if(!
$socket) { echo 'soket open - NO'; exit; } else { echo 'socket open - OK<br>'; }        

$connect socket_connect($socket$JABBER_SERVER$PORT);       

if(!
$connect) { echo 'soket connect - NO'; exit; } else { echo 'socket connect - OK<br>'; }         





$t "<stream:stream to='jabber.ru' xmlns='jabber:client' ";     
$t .= "xmlns:stream='http://etherx.jabber.org/streams' xml:lang='ru' version='1.0'/> ";        

echo 
'<b>Клиент - </b>'.htmlspecialchars($t).'<br><br>';       

socket_write($socket$t);             


while (
1)  {              
   
$read=array($socket);          
   
$count=socket_select($read,$write=null,$exception=     null,1);          
   
// Если ничего не пришло пропускаем         
   // Или если нужно что то послать по собственному желанию - отправляем          
   
if ($i++ > 5) break; // Соединение оборвется через 5 секунд или 5 принятых пакетов    
   
if ($count<1) continue;                 
   foreach (
$read as $one) {                  
       
$input=socket_read($one,4096);                  
       if (!empty(
$input)) {
             
// Тут обработка принятого пакета              
            // например если пришел пакет  stream features ответить пакетом начала SASL авторизации           
            
echo '<b>Ответ от jabber - </b>'.htmlspecialchars($input)."<br><br>";           

       }      
   }      
}


$t2 "<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5' />";   

echo 
'<b>Клиент - </b>'.htmlspecialchars($t2).'<br><br>';         
socket_write($socket$t2);             

while (
1)  {             $read=array($socket);         $count=socket_select($read,$write=null,$exception=     null,1);          

// Если ничего не пришло пропускаем          
// Или если нужно что то послать по собственному желанию - отправляем          
if ($i++ > 5) break; // Соединение оборвется через 5 секунд или 5 принятых пакетов    

if ($count<1) continue;                foreach ($read as $one)        {           $input=socket_read($one,4096);

if (!empty(
$input)) {                   
// Тут обработка принятого пакета              
// например если пришел пакет  stream features ответить пакетом начала SASL авторизации           

echo '<b>Ответ от jabber - </b>'.htmlspecialchars($input)."<br><br>";        
 }  
 }     
 }                                          
  
?>



if (!empty($input)) {
тогда выводим ответ
}

Последний раз редактировалось Pashkela; 27.03.2009 в 20:55..
 
Ответить с цитированием