Найти - Пользователи
Полная версия: twisted что-то вроде ретранслирущего сервера
Начало » Network » twisted что-то вроде ретранслирущего сервера
1
roku151
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 что-то вроде одна нить - несколько клиентов.
тоесть сервер создает нить, кидает в эту нить определенных клиентов.
если пришло сообщение рассылает всем клиентам в нити сообщение и потом возможно кидает нить в очередь
где-то так примерно. надеюсь выразился правильно)
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
roku151
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)
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