Найти - Пользователи
Полная версия: Отправка ICQ-сообщений из loop'a
Начало » Network » Отправка ICQ-сообщений из loop'a
1
andr0s
Здравствуйте. Мне необходимо реализовать отправку ICQ-сообщений в демоне. Демон этот получает данные для отправки по сокетам. Вопрос: как реализовать в таком случае отправку сообщений? Насколько я понимаю из официального примера twisted, для того чтобы работать с icq, необходимо запускать reactor.run. А цикл для приема входных данных с сокетов должен быть отдельным!
Пожалуйста, напишите как можно более понятный ответ. К сожалению я недавно программирую на Питоне, а с Twisted не работал вообще. Если есть какие-то другие _рабочие_ способы отправлять до 5 сообщений в секунду из Python, я буду благодарен и за такой ответ.
Заранее спасибо!
Андрей Светлов
Спамер?
andr0s
ICQ-уведомления. 5 сообщений в секунду там скорее всего не будет никогда. Однако невозможно распределить нагрузку, т.е. может отправляться одно сообщение в 2 часа, а может и несколько в секунду.
Андрей Светлов
Абсолютно все крутиться в reactor.run. Настроил соединения и запустил его. И НИКОГДА не выходишь. Вышел только для того, чтобы закрыть программу. Для твоих “входных данных” тоже создаешь соединение в twisted. Слушаешь в нем кого следует. Если что-то пришло - реагируешь соответственно. Например, просишь открыть соедиенение на icq клиента. Как-то так.
На словах объяснять может получиться довольно долго. Пиши код и присылай его, если что не так. Делать самому всю работу - никакого желания. Помочь/подсказать здесь многие готовы. Только спрашивай поконкретней. На вопрос “научите меня программированнию вообще” нормально ответить невозможно.

Документация:
http://twistedmatrix.com/projects/core/documentation/howto/index.html
Простой пример http proxy:
from twisted.web import proxy, http
from twisted.internet import reactor
from twisted.python import log
import sys
log.startLogging(sys.stdout)

class ProxyFactory(http.HTTPFactory):
def __init__(self):
http.HTTPFactory.__init__(self)
self.protocol = proxy.Proxy

reactor.listenTCP(8080, ProxyFactory())
reactor.run()
andr0s
Андрей Светлов, спасибо за ответ. Будем разбираться :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB