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

  #18  
Старый 27.03.2009, 21:29
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
С нами: 9497186

Репутация: 1304


По умолчанию

В общем, должно выглядеть почти так.
PHP код:
<?

$JABBER_SERVER 
= "jabber.ru";     
$PORT = 5222;      
$i=0;      
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_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++ > 10) break; // Соединение оборвется через 5 секунд или 5 принятых пакетов    
    
if ($count<1) continue;                 
    foreach (
$read as $one) {                  
        
$input=socket_read($one,4096);                  
        if (empty(
$input)) die('Соединение разорвано');
        echo 
'<b>Ответ от jabber - </b>'.htmlspecialchars($input)."<br><br>";
        if (
stripos($input,'stream:feature')!==false) 
        {
            
$t="<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5' />";
            
socket_write($one,$t);echo '<b>Клиент - </b>'.htmlspecialchars($t).'<br><br>';
        }
        if (
stripos($input,'challenge')!==false) 
        {
            echo 
'<br/><br/> А теперь разгадывай челленджы сасла: '.htmlspecialchars(base64_decode(strip_tags($input)));
        }
    }      
}
 
Ответить с цитированием