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);
// Тут обработка принятого пакета
// например если пришел пакет stream features ответить пакетом начала SASL авторизации
echo '<b>Ответ от jabber - </b>'.htmlspecialchars($input)."<br><br>";
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);
// Тут обработка принятого пакета
// например если пришел пакет stream features ответить пакетом начала SASL авторизации
echo '<b>Ответ от jabber - </b>'.htmlspecialchars($input)."<br><br>";
}
}
?>
Вот что выводтся в браузере
Цитата:
socket open - OK
socket connect - OK
Клиент - <stream:stream to='jabber.ru' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='ru' version='1.0'/>
Ответ от jabber - <?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='2125564970' from='jabber.ru' version='1.0' xml:lang='en'><stream:features><starttls xmlns='urn:ietfarams:xml:ns:xmpp-tls'/><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression><mechanisms xmlns='urn:ietfarams:xml:ns:xmpp-sasl'><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism></mechanisms><register xmlns='http://jabber.org/features/iq-register'/></stream:features></stream:stream>
Ответ от jabber -
Ответ от jabber -
Ответ от jabber -
Ответ от jabber -
Ответ от jabber -