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

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

Репутация: 1304


По умолчанию

Krist_ALL Примерный план подключение к джаббер серверу:

1) Создаем сокет (socket_create)
2) Подключаемся к серверу(socket_connect)
3) Посылаем инициализирующий запрос (<?xml version='1.0'?><stream:stream to=' и т.д.)
4) А вот дальше нужен цикл обработки и собственно ответов. Приблизительного вида:
PHP код:
// $sock - первоначальный сокет от socket_create
while (1)
{
    
$read=array($sock);
    
$count=socket_select($read,$write=null,$exception=null,15);
    
// Если ничего не пришло пропускаем
    // Или если нужно что то послать по собственному желанию - отправляем
    
if ($count<1) continue; 
    
    foreach (
$read as $one)
      {
        
$input=socket_read($one,4096);
        
// Тут обработка принятого пакета
        // например если пришел пакет  stream features ответить пакетом начала SASL авторизации
      
}
} 
Сам сейчас осваиваю питон и тоже пишу свой клиент джаббера

З.Ы. Ох и намучаешься ты с DIGEST-MD5 ))

Pashkela Не вводите людей в заблуждение, если вы не разбираетесь. XMPP не предусматривает символ перевода строк, чтобы можно было читать NORMAL_READ и для socket_write НЕ требуется указывать длину буфера, если конечно не хочется передавать обрезанные данные

Последний раз редактировалось Gifts; 27.03.2009 в 19:26..
 
Ответить с цитированием