Отправка сообщений в Jabber из Django


Задача:
 Организовать оповещение по протоколу XMPP(Jabber) о произошедшем в Django-приложении событии.
Например, о добавлении новой записи в базу данных.

Условия: Windows 2008 server, Apache 2.2, Jabber server Openfire 3.6.4

Как всегда просто используя "передовой опыт старших товарищей" задача решена не была, пришлось доставать бубен и начинать танцы. В итоге: "Ура! Зарработало!".

Решение:

1. Устанавливаем: dnsPython и xmpppy;

2. Добавляем в папку нашего приложения файл xmpp_send.py со следующим содержимым:

# -*- coding: utf-8 -*-
import xmpp,time

def Jsend(usr, msg):
jidparams={}

jidparams['jid']= 'Ник отправителя@адрес jabber сервера'
jidparams['password'] = 'пароль'

jid=xmpp.protocol.JID(jidparams['jid'])
cl=xmpp.Client(jid.getDomain(),debug=[])

con=cl.connect(('адрес jabber сервера',5222), use_srv=False)

if not con:
print 'could not connect with: ' + jid.getDomain()
sys.exit()
auth=cl.auth(jid.getNode(),jidparams['password'],resource=jid.getResource())
if not auth:
print 'could not authenticate!'
sys.exit()
 
id=cl.send(xmpp.protocol.Message(usr, msg))

time.sleep(1)  

cl.disconnect()

3. В views.py там где мы инициируем запись в базу данных добавляем:

from django.conf import settings
from application.xmpp_send.py import Jsend
...
if settings.JABBER_SEND:
    msg = u'Содержание сообщения'
    send = Jsend('Ник получателя@адрес jabber сервера', msg)
...  

4. В settings.py добавляем:

...
JABBER_SEND = True
...

5. Перегружаем сервер и все должно работать.

P.S. Вроде мелочь, а удобно и приятно :)

12.07.2011 12:25  Ключевые словаdjango , jabber , XMPP

Автор блога создает, продвигает и поддерживает сайты для бизнеса

  • Быстрая и качественная разработка сайтов/приложений
  • Качественная и продуманная SEO подготовка
  • Продвижение через Яндекс.Директ и Гугл.Адвордс


Комментарии: [2]

20:39 16.06.2012  owlman

Спасибо за отзыв. Очень приятно получать такие! :о)

20:15 16.06.2012  ScumeSleply

Здравствуйте! Классный у Вас сайт. Мне очень понравился )))


Добавить комментарий

Внимание! HTML код и ссылки в комментариях отключены.
Комментарии содержащие ссылки, публикуются после модерации.
Имя:


e-mail:



Комментарий:
 

  
   
Λ