Twisted: serveur tcp par exemple pousser producteur?
Question
Je veux mettre en place simple serveur TCP en utilisant Python et Twisted.
Le serveur démarre et attend que la connexion - je l'ai déjà client - application non-python. Une fois que la connexion est faite serveur commence à envoyer des données à un certain intervalle (par exemple 1 seconde).
Le serveur lit les données à partir d'un fichier statique (un enregistrement à la fois), je devrais être en mesure de comprendre cette partie.
Je suppose que j'utiliser producteur de pousser pour commencer à pousser des données une fois que le client est connecté.
Je simple serveur tcp avec l'usine en tordu et je peux réagir à connectionMade / dataReceived et ainsi de suite, mais je ne peux pas comment brancher le producteur push .
Tout le monde connaît des exemples montrant pousser le producteur avec le serveur tcp tordu?
La solution
Qu'en est-il quelque chose de simpliste comme:
thedata = '''
Questa mattina
mi son svegliato
o bella ciao, bella ciao,
bella ciao, ciao, ciao
questa mattina
mi son svegliato
ho trovato l'invasor!
'''.splitlines(True)
class Push(protocol.Protocol):
"""This is just about the simplest possible protocol"""
def connectionMade(self):
for line in thedata:
if not line or line.isspace():
continue
self.transport.write(line)
time.sleep(1.0)
self.transport.loseConnection()
a des données codées en dur, mais vous dites que la lecture à partir d'un fichier est plutôt pas votre problème. Si vous pouvez nous dire quel est le problème avec ce trop simpliste « serveur Push », nous pouvons peut-être offrir une meilleure aide -)