
27.03.2009, 19:11
|
|
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..
|
|
|