JRuDevels

Jabber Russian Developers Forum.
Log in Register FAQ Memberlist Search JRuDevels Forum Index

JRuDevels Forum Index » Разработка и проектирование [Devel] » Подскажите начинающему (perl-Net-Jabber) Goto page 1, 2  Next
Post new topic  Reply to topic View previous topic :: View next topic 
Подскажите начинающему (perl-Net-Jabber)
PostPosted: Mon Mar 19, 2007 6:05 pm Reply with quote
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 .
View user's profile Send private message Send Jabber-message
PostPosted: Mon Mar 19, 2007 7:49 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




чтобы получить чей-то статус, надо иметь подписку, вы в курсе?

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
Re: Подскажите начинающему (perl-Net-Jabber)
PostPosted: Tue Mar 20, 2007 11:05 am Reply with quote
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

Принимает и отправляет мессаги, автоавторизует всех
(это в пакете заложено).
View user's profile Send private message Send Jabber-message
PostPosted: Tue Mar 20, 2007 11:11 am Reply with quote
banan
Отметившийся
Отметившийся
Joined: 19 Mar 2007
Posts: 10




Binary wrote:
чтобы получить чей-то статус, надо иметь подписку, вы в курсе?


Спасибо за информацию, уже в курсе Smile
Jabber сервер у которого я буду запрашивать сию информацию устанавливал я сам. Не проблема иметь административного пользователя который будет иметь всех пользователей с необходимой авторизацией, хотя если есть возможность все решать от имени администратора - было бы лучше.
View user's profile Send private message Send Jabber-message
PostPosted: Tue Mar 20, 2007 9:02 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




в случае с ejabberd, можно было бы бота запихать в shared roster. тогда он будет видеть статусы всех...

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Wed Mar 21, 2007 8:44 am Reply with quote
Juriks
Разработчик
Разработчик
Joined: 21 Nov 2006
Posts: 203
Location: Москва




Наверное, было бы проще напрямую из бд сервера всё это вытащить. Если, конечно, админ разрешит получить доступ на чтение из бд.
View user's profile Send private message HabaHaba - Fast communicate
PostPosted: Wed Mar 21, 2007 10:55 am Reply with quote
banan
Отметившийся
Отметившийся
Joined: 19 Mar 2007
Posts: 10




Juriks wrote:
Наверное, было бы проще напрямую из бд сервера всё это вытащить.


Это была первая мысль, пользую http://www.jabber.org/software/jabberd2x.shtml , так понимаю что называется он jabberstudio2, база данных mysql - не нашел там статусов Sad
View user's profile Send private message Send Jabber-message
Re: Подскажите начинающему (perl-Net-Jabber)
PostPosted: Wed Mar 21, 2007 11:59 am Reply with quote
feez
Разработчик
Разработчик
Joined: 01 Jan 1970
Posts: 146




banan wrote:
Есть задачка, для собственных нужд нужно по средствам
perl-Net-Jabber из jabber сервера вытаскивать статус пользователя, т.е. есть jabber сервер, на нем пользователи, они могут устанавливать статус типа Away "Ушел на обед", мне вот это самое сообщение нужно получить в переменную.


Это нужно делать постоянно, т.е. например по запросу на отдельный jid, или, например, раз в час брать статус у всех сразу?

Если первое, то, думаю, имеет смысл использовать существующее решение. Например, http://edgar.netflint.net/ Были и другие насколько я помню. И тогда из перла посылать запросы к нему напрямую, например, вызывая подправленный php скрипт, который будет отдавать чистый статус или xml со всеми параметрами. Или, так как Эдгар все статусы хранит в mysql базе, то можно из перла прямо там смотреть.

В этом случае паузы между запросом и ответом по идее будет минимальная. Если бы скрипт каждый раз сам коннектился к jabber серверу и ждал все презенсы, то пауза была бы ощутимая.
View user's profile Send private message Send Jabber-message HabaHaba - Fast communicate
Re: Подскажите начинающему (perl-Net-Jabber)
PostPosted: Wed Mar 21, 2007 12:17 pm Reply with quote
banan
Отметившийся
Отметившийся
Joined: 19 Mar 2007
Posts: 10




feez wrote:
Это нужно делать постоянно, т.е. например по запросу на отдельный jid, или, например, раз в час брать статус у всех сразу?

Если первое, то, думаю, имеет смысл использовать существующее решение. Например, http://edgar.netflint.net/ Были и другие насколько я помню. И тогда из перла посылать запросы к нему напрямую, например, вызывая подправленный php скрипт, который будет отдавать чистый статус или xml со всеми параметрами. Или, так как Эдгар все статусы хранит в mysql базе, то можно из перла прямо там смотреть.

В этом случае паузы между запросом и ответом по идее будет минимальная. Если бы скрипт каждый раз сам коннектился к jabber серверу и ждал все презенсы, то пауза была бы ощутимая.


Это нужно делать постоянно, edgar не подойдет потому что я не хочу использовать "левые сервера", из готовых решений приемлится только то что использует библиотеку perl-Net-Jabber с целью почерпывания корректного кода.
View user's profile Send private message Send Jabber-message
Re: Подскажите начинающему (perl-Net-Jabber)
PostPosted: Wed Mar 21, 2007 12:20 pm Reply with quote
feez
Разработчик
Разработчик
Joined: 01 Jan 1970
Posts: 146




banan wrote:

edgar не подойдет потому что я не хочу использовать "левые сервера",

Там есть исходники. Код на php. edgar.php -- сам бот. status.php, скрипт, который надо положить в cgi-bin, он смотрит базу. Конфиг в config.php

banan wrote:

из готовых решений приемлится только то что использует библиотеку perl-Net-Jabber с целью почерпывания корректного кода.

Таких не знаю :)
View user's profile Send private message Send Jabber-message HabaHaba - Fast communicate
PostPosted: Wed Mar 21, 2007 12:21 pm Reply with quote
banan
Отметившийся
Отметившийся
Joined: 19 Mar 2007
Posts: 10




расскажу суть затеи если это поможет делу:
Есть предприятие, в качестве программы общения пользователи используется jabber, есть адресная книга сотрудников предприятия (cgi). Хочется: вытащить текущий статус сотрудника в адресную книгу на момент запроса информации о сотруднике у web-сервера.

Сервер администрирую я.
View user's profile Send private message Send Jabber-message
Re: Подскажите начинающему (perl-Net-Jabber)
PostPosted: Wed Mar 21, 2007 12:24 pm Reply with quote
banan
Отметившийся
Отметившийся
Joined: 19 Mar 2007
Posts: 10




feez wrote:
banan wrote:

edgar не подойдет потому что я не хочу использовать "левые сервера",

Там есть исходники. Код на php. edgar.php -- сам бот. status.php, скрипт, который надо положить в cgi-bin, он смотрит базу. Конфиг в config.php


Спасибо что откликнулись, попробую глянуть алгоритм edgar.php, может он прольет свет как у jabber сервера спросить статус конкретного пользователя ...
View user's profile Send private message Send Jabber-message
Re: Подскажите начинающему (perl-Net-Jabber)
PostPosted: Wed Mar 21, 2007 12:44 pm Reply with quote
feez
Разработчик
Разработчик
Joined: 01 Jan 1970
Posts: 146




banan wrote:

Спасибо что откликнулись, попробую глянуть алгоритм edgar.php, может он прольет свет как у jabber сервера спросить статус конкретного пользователя ...

С кодом помочь не могу, но алгоритм примерно такой:
1. входишь в сеть (аутентификация на сервере)
2. посылаешь свой presence (доступен)
3. В течении некоторого времени получаешь презенсы от всех, кто в ростере и с подпиской from или both.
Один из них будет искомый, в презенсе будет и текст статуса и сам статус и приоритет.
View user's profile Send private message Send Jabber-message HabaHaba - Fast communicate
PostPosted: Wed Mar 21, 2007 12:45 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




правильнее сваять даемона, который постоянно висит в сети и мониторит статусы всех. У нас даже есть такой на Python - Habahaba называется Smile

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
Re: Подскажите начинающему (perl-Net-Jabber)
PostPosted: Wed Mar 21, 2007 12:47 pm Reply with quote
banan
Отметившийся
Отметившийся
Joined: 19 Mar 2007
Posts: 10




feez wrote:
С кодом помочь не могу, но алгоритм примерно такой:
1. входишь в сеть (аутентификация на сервере)
2. посылаешь свой presence (доступен)
3. В течении некоторого времени получаешь презенсы от всех, кто в ростере и с подпиской from или both.
Один из них будет искомый, в презенсе будет и текст статуса и сам статус и приоритет.


спасибо за алгоритм, теперь имею понимание что нужно делать.
View user's profile Send private message Send Jabber-message
Подскажите начинающему (perl-Net-Jabber)
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
  
  
 Post new topic  Reply to topic  


Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin