Форум сайта python.su
Всем привет.
Имея некоторый уровень скриптования на интерпретируемых языках решил попробывать свои силы в Питоне.
Планирую написать свой консольный вариант джаббер клиента используя доступные библиотеки.
Очень прошу помочь разобраться с тем, как запускать скрипты и что бы они не умирали, т.е. висели как этакий процесс принимающий (для начала) сообщения от друзей по джабберу.
Все что мне приходит в голову это начать свой скрипт с цикла не имеющего точки выхода для поддержания работы скрипта и параллельно работать с библиотеками которые будут помогать мне принимать и обрабатывать сообщения. Этот скрипт я видимо запуская в консоли Питона.
В правильном ли направлении я думаю?
Так же был вариант взять библиотеки русующие GUI и создав новое окошко, даже если и пустое мы автоматически получаем не умирающий процесс.
ps. все свои опыты провожу на WIN XP если это имеет значение.
Офлайн
Примерно правильно.
Если сильно упрощать, то да, с точки зрения программиста, есть 2 варианта.
1. Бесконечный цикл.
2. Событийная модель (GUI интерфейс, это как раз частный случай такого варианта, но совсем не обязательный). В этом случае цикл (или типа того) скрыто от программиста - и он имеет дело с так называемыми событиями или кол-беками. В этом случае ты описываешь, что при определенного события, вызовется такая-то функция (например при событии “пришло сообщение” вызывается функция “отобразить сообщение на экране”).
Отредактировано (Сен. 23, 2008 18:41:51)
Офлайн
Если ты не будешь писать с нуля реализацию протокола XMPP, а воспользуешься готовой библиотекой, то в нее скорее всего уже будет заложен некоторый шаблон архитектуры приложения. Думаю что им и надо воспользоваться =).
Отредактировано (Сен. 23, 2008 19:06:46)
Офлайн
Глянул одним глазом, на доступные либы:
http://jabberpy.sourceforge.net/ здесь вроде подразумевается событийная модель
http://xmpppy.sourceforge.net/ - здесь наверное придется цикл делать
http://code.google.com/p/sleekxmpp/ - здесь тоже событийная
http://pyxmpp.jajcus.net/ - и здесь кажется тоже событийная
Офлайн
shiza
Большое спасибо за столь подробные ответы. В общем то я был на правильном пути.
из готовых библиотек думаю использовать twisted (реализация сетевых протоколов), в нем вроде как имеется тимплейт архитектуры
Офлайн