Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » twisted что-то вроде ретранслирущего сервера [RSS Feed]

#1 Июнь 10, 2010 16:07:55

roku151
От:
Зарегистрирован: 2010-06-10
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

twisted что-то вроде ретранслирущего сервера

from twisted.internet import protocol, reactor, defer, utils
from twisted.protocols import basic
from twisted.web import client

class FingerProtocol(basic.LineReceiver):
def lineReceived(self, line):
self.factory.addUser(self, line)

class FingerFactory(protocol.ServerFactory):
protocol = FingerProtocol
users = []
def addUser(self, con, line):
for connection in self.users:
connection.transport.write('user connected. message: %s' % line)
self.users.append(con)


reactor.listenTCP(1089, FingerFactory())
reactor.run()
сервер принимает подключение от клиента и отправляет его всем остальным подключенным клиентам.
хотелось бы узнать нормально ли это реализовать как сделал я или есть какие-либо более правильные решения)

и еще один вопрос:
возможно реализовать на twisted что-то вроде одна нить - несколько клиентов.
тоесть сервер создает нить, кидает в эту нить определенных клиентов.
если пришло сообщение рассылает всем клиентам в нити сообщение и потом возможно кидает нить в очередь
где-то так примерно. надеюсь выразился правильно)



Офлайн

#2 Июнь 16, 2010 08:35:37

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

twisted что-то вроде ретранслирущего сервера

Может воспользоваться какими-то уже реализованными пакетами? Например похожий функционал есть в AMQP, который имеет множество реализаций (RabbitMQ самая известная) в том числе на twisted (https://launchpad.net/txamqp).

Также что-то подобное имеется в redis - http://code.google.com/p/redis/wiki/PublishSubscribe

UPD.
Если ruby не пугает, то посмотрите пример с redis http://gist.github.com/348262



Отредактировано (Июнь 16, 2010 08:43:40)

Офлайн

#3 Июнь 16, 2010 20:09:56

roku151
От:
Зарегистрирован: 2010-06-10
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

twisted что-то вроде ретранслирущего сервера

ziro
Может воспользоваться какими-то уже реализованными пакетами? Например похожий функционал есть в AMQP, который имеет множество реализаций (RabbitMQ самая известная) в том числе на twisted (https://launchpad.net/txamqp).

Также что-то подобное имеется в redis - http://code.google.com/p/redis/wiki/PublishSubscribe

UPD.
Если ruby не пугает, то посмотрите пример с redis http://gist.github.com/348262
Спс за ответ. Буду разбиратся что за зверь этот AMQP)



Офлайн

  • Начало
  • » Network
  • » twisted что-то вроде ретранслирущего сервера[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version