Estoy trabajando para aprender Twisted, y he tropezado con algo que no estoy seguro de que sea terriblemente aficionado: el "Twisted Command Prompt". Estoy perder el tiempo con trenzado en mi máquina de Windows, y trató de ejecutar el "Chat" ejemplo:¿Cómo ejecutas una aplicación Twisted a través de Python (en lugar de a través de Twisted)?
from twisted.protocols import basic
class MyChat(basic.LineReceiver):
def connectionMade(self):
print "Got new client!"
self.factory.clients.append(self)
def connectionLost(self, reason):
print "Lost a client!"
self.factory.clients.remove(self)
def lineReceived(self, line):
print "received", repr(line)
for c in self.factory.clients:
c.message(line)
def message(self, message):
self.transport.write(message + '\n')
from twisted.internet import protocol
from twisted.application import service, internet
factory = protocol.ServerFactory()
factory.protocol = MyChat
factory.clients = []
application = service.Application("chatserver")
internet.TCPServer(1025, factory).setServiceParent(application)
Sin embargo, para ejecutar esta aplicación como un servidor de trenzado, tengo que correr a través de la "Símbolo del trenzado de comandos" , con el comando:
twistd -y chatserver.py
¿hay alguna forma de cambiar el código (ajustes de configuración de juegos de Twisted, etc.), de modo que simplemente se puede ejecutar a través de:
python chatserver.py
Googled, bu t los términos de búsqueda parecen ser demasiado vagos para devolver respuestas significativas.
Gracias.
Esto fue EXACTAMENTE lo que estaba buscando. Gracias una tonelada. –
En las versiones más nuevas de Twisted, generalmente debería usar puntos finales en lugar de llamar directamente a los métodos de reactores. En este ejemplo, reemplace la línea 'listenTCP' con. Esto es más flexible, porque puede pasar por los puntos finales sin necesariamente iniciarlos. En las versiones más nuevas de Twisted, habrá cada vez más herramientas para trabajar con endpoints, por lo que es un poco más a prueba de futuro. –
Glyph
¿Qué hay de implementar esto con su paquete. Idealmente, me gustaría iniciar mi servidor con un solo comando después de haberlo instalado en Virtualenv. ¿Cuál es la forma recomendada de enviar el script del servidor junto con su paquete? – Chris