| | [XMPPHP] асинхронные сокеты |
| |
Posted: Thu Jan 29, 2009 9:49 pm |
|
|
nexor |
Отметившийся |
|
|
Joined: 29 Jan 2009 |
Posts: 2 |
|
|
|
|
|
|
|
Здравствуйте, господа.
Никому не доводилось копаться в XMPPHP?
Проблема следующая. У меня есть jabber-бот, который висит в виде демона, и (теоретически) каждую секунду проверяет протокол на наличие пришедших сообщений, а некоторые действия выполняет по таймеру. К сожалению в xmpphp по умолчанию установлен блокирующий режим чтения из сокета и таймер становится бессмысленным.
Интересует, как можно перевести работу библиотеки в неблокирующий режим?
Пробовал менять в XMLStream.php
Code: |
stream_set_blocking($this->socket, 1);
|
на
Code: |
stream_set_blocking($this->socket, 0);
|
, но эффект тот же. |
|
|
|
|
Posted: Sun Feb 01, 2009 10:40 pm |
|
|
nexor |
Отметившийся |
|
|
Joined: 29 Jan 2009 |
Posts: 2 |
|
|
|
|
|
|
|
Помогло вот такое решение:
XMLStream.php, line ~471, в цикле while
Code: |
$this->__process( 1000000 / 3 );
|
XMLStream.php, line 324
Code: |
stream_set_blocking($this->socket, 0);
|
И когда делаем
Code: |
$conn->processUntil(.., 1);
|
вторым параметром идет таймаут прослушки сокета, который надо поставить в целое значение, большее 0. (например 1) |
|
|
|
|
JRuDevels Forum Index » Разработка и проектирование [Devel] |
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
All times are GMT + 3 Hours
Page 1 of 1
|
|
|
|