Contorto:server TCP con esempio di produttore push?
Domanda
Voglio mettere insieme un semplice server TCP usando Python e Twisted.
Il server si avvia e attende la connessione: ho già un client, un'applicazione non Python.Una volta stabilita la connessione, il server inizia a inviare i dati a un certo intervallo (ad es.1 secondo).
Il server legge i dati da un file statico (un record alla volta), dovrei riuscire a capire questa parte.
Presumo che utilizzerei il produttore push per iniziare a inviare i dati una volta connesso il client.
Ho un semplice server TCP con fabbrica in twisted e posso reagire a ConnectionMade/dataReceived e così via ma non riesco a capire su come collegare il produttore push.
Qualcuno conosce qualche esempio che mostri il produttore push con il server TCP in twisted?
Soluzione
Che ne dici di qualcosa di semplicistico come:
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()
Questo ha dati hardcoded, ma dici che invece leggerlo da un file non è un tuo problema.Se puoi dirci cosa c'è che non va in questo "server push" eccessivamente semplicistico, forse possiamo offrirti un aiuto migliore!-)
Altri suggerimenti
Qui è un esempio completo di produttore push.È stato aggiunto al twisted svn come esempio.