bratskiy
Новичок
создание событий
Здравствуйте.
Пишу клиент для jabbera (php 4.4.7).
Сразу оговорюсь, что все подобные готовые классы - jabber клиенты, которые можно найти в интернете мне не подходят, т.к они не работают и не удовлетворяют специфике моей задачи.
Принимать сообщения уже получается, но с отправкой возникает проблема.
Так как для работы с сокетами через php скрипты, обязательно нужно организовывать бесконечный цикл
(while(true) { читаем сокет }), не понятно как можно обратится внутрь этого цикла, в случае если хочется отправить сообщение.
структура класса примерно такая
class jabberclient
var $........
function ........
function run() ---В эту функцию надо передать данные из вне
{
$this->connect();
$this->autorize();
while(true)
{
if(false === ($s_answ = socket_read($this->socket, 2048)))
{
print("can not get answer from server".socket_strerror(socket_last_error())."\n\r");
break;
}
print("Server: ".$s_answ."\n\r");
}
}
На php пишу не так давно, и насколько знаю на нём нельзя создавать пользовательские события и их обработчики,
Постоянное внутри цикла считывать файлик, в который можно записать что-нибудь в случае отправки сообщения как то не очень охота. Может есть какой другой способ?
Здравствуйте.
Пишу клиент для jabbera (php 4.4.7).
Сразу оговорюсь, что все подобные готовые классы - jabber клиенты, которые можно найти в интернете мне не подходят, т.к они не работают и не удовлетворяют специфике моей задачи.
Принимать сообщения уже получается, но с отправкой возникает проблема.
Так как для работы с сокетами через php скрипты, обязательно нужно организовывать бесконечный цикл
(while(true) { читаем сокет }), не понятно как можно обратится внутрь этого цикла, в случае если хочется отправить сообщение.
структура класса примерно такая
class jabberclient
var $........
function ........
function run() ---В эту функцию надо передать данные из вне
{
$this->connect();
$this->autorize();
while(true)
{
if(false === ($s_answ = socket_read($this->socket, 2048)))
{
print("can not get answer from server".socket_strerror(socket_last_error())."\n\r");
break;
}
print("Server: ".$s_answ."\n\r");
}
}
На php пишу не так давно, и насколько знаю на нём нельзя создавать пользовательские события и их обработчики,
Постоянное внутри цикла считывать файлик, в который можно записать что-нибудь в случае отправки сообщения как то не очень охота. Может есть какой другой способ?