![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
DaemonSuw |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: 3 Всего: 3 |
Доброго времени суток... Нужно написать бота для jabber-а... На спане есть модуль AnyEvent::XMPP...
1. Он не собирается под винду, тоесть собирается все кроме доп. модуля, который ему нужен, а именно
2. а на никсах не работает код... простейший даже коннекта...((( что то вроде этого
В ком строку получаю
в чем проблема... подскажите что делаю не так? на никсах был модуль установлен не мною... возможно тоже криво... кто нибудь работал с этим модулем? Это сообщение отредактировал(а) DaemonSuw - 14.4.2009, 20:14 |
||||||
|
|||||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
почему не Net::Jabber ?
|
|||
|
||||
DaemonSuw |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: 3 Всего: 3 |
arto, вы тестировали этот модуль? Последний релиз очень древний( 06 Sep 2004....
Я думаю к сожалению он не подойдет... мне нужно реализовать бота который бы реагировал на любое событие в контакт листе - смена статуса, отправка сообщения боту, генерить отправку ботом сообщений пользователю по специфическим его свойствам... по сути автоматизировать распределение заказов... в модуле AnyEvent::XMPP (даже из названия понятно, что он заточен на опрос событий)... Например... имеем в описании событие...
В теории пишем примерно следующее и получем обработчик событий ;)... ну в данном контексте пытаемся получить))))
Это сообщение отредактировал(а) DaemonSuw - 15.4.2009, 00:04 |
||||
|
|||||
DaemonSuw |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: 3 Всего: 3 |
С коннектом разобрался... смутил метод is_connected который постоянно возвращает 0...
Зато после модификации кода в джабере появляется онлайн бот :0) Проблема в следующем как проверить что бот законнектин...?
|
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
DaemonSuw, не хочу Вас огорчать, но AnyEvent в названии модуля никакого отношения к событиям, происходящим в jabber-клиенте не имеет. AnyEvent - это модуль, который позволяет реализовать свою обработку событий не привязываясь к конкретной событийной машине (EV, Event и т.п.). Событиями в событийной машине являются чтение и запись в поток ввода/вывода, срабатывание таймена, работа с сигналами и дочерними процессами.
Те события, которые нужны Вам должны обрабатываться модулем, насколько хорошо это делается (и делается ли вообще) можно узнать только по содержимому модуля, а не по названию. Модуль AnyEvent::XMPP новее из-за того, что сам AnyEvent достаточно молодой. Я пытался его (AnyEvent) использовать для резализации многопоточного (без использования потоков) http-клиента, но возникли проблемы (модуль корректно не удалял объекты из памяти, автор ошибку признавать не хотел), поэтому пришлось перейти на EV (о чем я ни минуты не пожалел :о). Это сообщение отредактировал(а) ginnie - 15.4.2009, 12:09 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
DaemonSuw |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: 3 Всего: 3 |
ginnie, То я так понимаю что данный модуль вам не подошел и вы использовали EV? Где про EV можно найти информацию?Это он (http://search.cpan.org/~mlehmann/EV-3.53/)? и где можно поподробнее узнать про работу событийной машины в jabber-e и возможно работает с его соб. машиной через этот модуль?
Это сообщение отредактировал(а) DaemonSuw - 15.4.2009, 19:13 |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
DaemonSuw, в jabber нет событийной машины, насколько я понимаю
|
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
DaemonSuw, мне не подошел модуль AnyEvent, но для целей никак не связанных с XMPP! Если проблемы в модуле AnyEvent автор не исправил (я надеюсь, что исправил :о), то возможны разные неприятности при использовании AnyEvent::XMPP.
Событийная машина AnyEvent используется для двухсторонней передачи данных в TCP-соединении между jabber-клиентом и jabber-сервером. По поводу незрелости AnyEvent::XMPP я был не прав, т.к. этот модуль стал развитием модуля Net::XMPP2. К сожалению, опыта использования AnyEvent::XMPP у меня нет, поэтому подсказать что-либо дельное я не могу. Пытался написать XMPP-клиента, отсылающего логи с сервера, но возникли некоторые сложности с получением offline-сообщений через google, после чего разработку забросил. Я использовал Net::XMPP. Там есть подобие событийной машины. События фиксированные (onconnect, onauth и т.п.), в явном виде того, что Вам надо нет, но при хорошем знании XMPP доработать функционал не очень сложно. Я хорошего знания XMPP не получил (надеюсь, все еще впереди :о). Это сообщение отредактировал(а) ginnie - 15.4.2009, 19:58 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |