| | Подскажите начинающему (perl-Net-Jabber) |
| |
Posted: Mon Mar 19, 2007 6:05 pm |
|
|
banan |
Отметившийся |
|
|
Joined: 19 Mar 2007 |
Posts: 10 |
|
|
|
|
|
|
|
Есть задачка, для собственных нужд нужно по средствам
perl-Net-Jabber из jabber сервера вытаскивать статус пользователя, т.е. есть jabber сервер, на нем пользователи, они могут устанавливать статус типа Away "Ушел на обед", мне вот это самое сообщение нужно получить в переменную.
В инете лазил многа, день ковырялся с докой и примерами /usr/share/doc/packages/perl-Net-Jabber/examples , опыт программирования на пеле с использованием библиотек есть, но вот perl-Net-Jabber не асилил.
Буду признателен за любые подсказки, а так же если есть у кого рабочий perl-код использования perl-Net-Jabber . |
|
|
|
|
Posted: Mon Mar 19, 2007 7:49 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
чтобы получить чей-то статус, надо иметь подписку, вы в курсе? |
|
_________________ And I'm feeling good! |
|
|
|
| | Re: Подскажите начинающему (perl-Net-Jabber) |
| |
Posted: Tue Mar 20, 2007 11:05 am |
|
|
b108 |
Отметившийся |
|
|
Joined: 20 Mar 2007 |
Posts: 2 |
Location: Волгоград |
|
|
|
|
|
|
banan wrote: | Есть задачка, для собственных нужд нужно по средствам
perl-Net-Jabber из jabber сервера вытаскивать статус пользователя, т.е. есть jabber сервер, на нем пользователи, они могут устанавливать статус типа Away "Ушел на обед", мне вот это самое сообщение нужно получить в переменную.
В инете лазил многа, день ковырялся с докой и примерами /usr/share/doc/packages/perl-Net-Jabber/examples , опыт программирования на пеле с использованием библиотек есть, но вот perl-Net-Jabber не асилил.
Буду признателен за любые подсказки, а так же если есть у кого рабочий perl-код использования perl-Net-Jabber . |
http://xchg.ru/jabber_example.txt
Принимает и отправляет мессаги, автоавторизует всех
(это в пакете заложено). |
|
|
|
|
| | |
Posted: Tue Mar 20, 2007 11:11 am |
|
|
banan |
Отметившийся |
|
|
Joined: 19 Mar 2007 |
Posts: 10 |
|
|
|
|
|
|
|
Binary wrote: | чтобы получить чей-то статус, надо иметь подписку, вы в курсе? |
Спасибо за информацию, уже в курсе
Jabber сервер у которого я буду запрашивать сию информацию устанавливал я сам. Не проблема иметь административного пользователя который будет иметь всех пользователей с необходимой авторизацией, хотя если есть возможность все решать от имени администратора - было бы лучше. |
|
|
|
|
Posted: Tue Mar 20, 2007 9:02 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
в случае с ejabberd, можно было бы бота запихать в shared roster. тогда он будет видеть статусы всех... |
|
_________________ And I'm feeling good! |
|
|
|
Posted: Wed Mar 21, 2007 8:44 am |
|
|
Juriks |
Разработчик |
|
|
Joined: 21 Nov 2006 |
Posts: 203 |
Location: Москва |
|
|
|
|
|
|
Наверное, было бы проще напрямую из бд сервера всё это вытащить. Если, конечно, админ разрешит получить доступ на чтение из бд. |
|
|
|
|
Posted: Wed Mar 21, 2007 10:55 am |
|
|
banan |
Отметившийся |
|
|
Joined: 19 Mar 2007 |
Posts: 10 |
|
|
|
|
|
|
|
Juriks wrote: | Наверное, было бы проще напрямую из бд сервера всё это вытащить. |
Это была первая мысль, пользую http://www.jabber.org/software/jabberd2x.shtml , так понимаю что называется он jabberstudio2, база данных mysql - не нашел там статусов |
|
|
|
|
| | Re: Подскажите начинающему (perl-Net-Jabber) |
| |
Posted: Wed Mar 21, 2007 11:59 am |
|
|
feez |
Разработчик |
|
|
Joined: 01 Jan 1970 |
Posts: 146 |
|
|
|
|
|
|
|
banan wrote: | Есть задачка, для собственных нужд нужно по средствам
perl-Net-Jabber из jabber сервера вытаскивать статус пользователя, т.е. есть jabber сервер, на нем пользователи, они могут устанавливать статус типа Away "Ушел на обед", мне вот это самое сообщение нужно получить в переменную. |
Это нужно делать постоянно, т.е. например по запросу на отдельный jid, или, например, раз в час брать статус у всех сразу?
Если первое, то, думаю, имеет смысл использовать существующее решение. Например, http://edgar.netflint.net/ Были и другие насколько я помню. И тогда из перла посылать запросы к нему напрямую, например, вызывая подправленный php скрипт, который будет отдавать чистый статус или xml со всеми параметрами. Или, так как Эдгар все статусы хранит в mysql базе, то можно из перла прямо там смотреть.
В этом случае паузы между запросом и ответом по идее будет минимальная. Если бы скрипт каждый раз сам коннектился к jabber серверу и ждал все презенсы, то пауза была бы ощутимая. |
|
|
|
|
| | Re: Подскажите начинающему (perl-Net-Jabber) |
| |
Posted: Wed Mar 21, 2007 12:17 pm |
|
|
banan |
Отметившийся |
|
|
Joined: 19 Mar 2007 |
Posts: 10 |
|
|
|
|
|
|
|
feez wrote: | Это нужно делать постоянно, т.е. например по запросу на отдельный jid, или, например, раз в час брать статус у всех сразу?
Если первое, то, думаю, имеет смысл использовать существующее решение. Например, http://edgar.netflint.net/ Были и другие насколько я помню. И тогда из перла посылать запросы к нему напрямую, например, вызывая подправленный php скрипт, который будет отдавать чистый статус или xml со всеми параметрами. Или, так как Эдгар все статусы хранит в mysql базе, то можно из перла прямо там смотреть.
В этом случае паузы между запросом и ответом по идее будет минимальная. Если бы скрипт каждый раз сам коннектился к jabber серверу и ждал все презенсы, то пауза была бы ощутимая. |
Это нужно делать постоянно, edgar не подойдет потому что я не хочу использовать "левые сервера", из готовых решений приемлится только то что использует библиотеку perl-Net-Jabber с целью почерпывания корректного кода. |
|
|
|
|
| | Re: Подскажите начинающему (perl-Net-Jabber) |
| |
Posted: Wed Mar 21, 2007 12:20 pm |
|
|
feez |
Разработчик |
|
|
Joined: 01 Jan 1970 |
Posts: 146 |
|
|
|
|
|
|
|
banan wrote: |
edgar не подойдет потому что я не хочу использовать "левые сервера",
|
Там есть исходники. Код на php. edgar.php -- сам бот. status.php, скрипт, который надо положить в cgi-bin, он смотрит базу. Конфиг в config.php
banan wrote: |
из готовых решений приемлится только то что использует библиотеку perl-Net-Jabber с целью почерпывания корректного кода. |
Таких не знаю :) |
|
|
|
|
Posted: Wed Mar 21, 2007 12:21 pm |
|
|
banan |
Отметившийся |
|
|
Joined: 19 Mar 2007 |
Posts: 10 |
|
|
|
|
|
|
|
расскажу суть затеи если это поможет делу:
Есть предприятие, в качестве программы общения пользователи используется jabber, есть адресная книга сотрудников предприятия (cgi). Хочется: вытащить текущий статус сотрудника в адресную книгу на момент запроса информации о сотруднике у web-сервера.
Сервер администрирую я. |
|
|
|
|
| | Re: Подскажите начинающему (perl-Net-Jabber) |
| |
Posted: Wed Mar 21, 2007 12:24 pm |
|
|
banan |
Отметившийся |
|
|
Joined: 19 Mar 2007 |
Posts: 10 |
|
|
|
|
|
|
|
feez wrote: | banan wrote: |
edgar не подойдет потому что я не хочу использовать "левые сервера",
|
Там есть исходники. Код на php. edgar.php -- сам бот. status.php, скрипт, который надо положить в cgi-bin, он смотрит базу. Конфиг в config.php |
Спасибо что откликнулись, попробую глянуть алгоритм edgar.php, может он прольет свет как у jabber сервера спросить статус конкретного пользователя ... |
|
|
|
|
| | Re: Подскажите начинающему (perl-Net-Jabber) |
| |
Posted: Wed Mar 21, 2007 12:44 pm |
|
|
feez |
Разработчик |
|
|
Joined: 01 Jan 1970 |
Posts: 146 |
|
|
|
|
|
|
|
banan wrote: |
Спасибо что откликнулись, попробую глянуть алгоритм edgar.php, может он прольет свет как у jabber сервера спросить статус конкретного пользователя ... |
С кодом помочь не могу, но алгоритм примерно такой:
1. входишь в сеть (аутентификация на сервере)
2. посылаешь свой presence (доступен)
3. В течении некоторого времени получаешь презенсы от всех, кто в ростере и с подпиской from или both.
Один из них будет искомый, в презенсе будет и текст статуса и сам статус и приоритет. |
|
|
|
|
Posted: Wed Mar 21, 2007 12:45 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
правильнее сваять даемона, который постоянно висит в сети и мониторит статусы всех. У нас даже есть такой на Python - Habahaba называется |
|
_________________ And I'm feeling good! |
|
|
|
| | Re: Подскажите начинающему (perl-Net-Jabber) |
| |
Posted: Wed Mar 21, 2007 12:47 pm |
|
|
banan |
Отметившийся |
|
|
Joined: 19 Mar 2007 |
Posts: 10 |
|
|
|
|
|
|
|
feez wrote: | С кодом помочь не могу, но алгоритм примерно такой:
1. входишь в сеть (аутентификация на сервере)
2. посылаешь свой presence (доступен)
3. В течении некоторого времени получаешь презенсы от всех, кто в ростере и с подпиской from или both.
Один из них будет искомый, в презенсе будет и текст статуса и сам статус и приоритет. |
спасибо за алгоритм, теперь имею понимание что нужно делать. |
|
|
|
|
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 2
Goto page 1, 2 Next
|
|
|
|