Pracuję nad uczeniem się Twisted i natknąłem się na coś, czego nie jestem pewien, czy strasznie lubię - "Twisted Command Prompt". Ja fiddling ze skręconymi na moim komputerze z systemem Windows, i próbowali uruchamiając „chat” Przykład:Jak uruchamiasz aplikację Twisted przez Python (zamiast poprzez 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)
Jednak, aby uruchomić tę aplikację jako serwer Twisted, muszę go uruchomić poprzez „wierszem Twisted komenda” z poleceniem:
twistd -y chatserver.py
jest jakiś sposób aby zmienić kod (ustawiający Twisted ustawień konfiguracyjnych, etc), tak, że mogę po prostu go uruchomić poprzez:
python chatserver.py
Skończyłem googled, bu t wyszukiwane terminy wydają się zbyt niejasne, aby zwrócić jakiekolwiek sensowne odpowiedzi.
Dzięki.
To było DOKŁADNIE to, czego szukałem. Dzięki za tonę. –
W nowszych wersjach Twisted powinieneś raczej używać punktów końcowych zamiast bezpośrednio wywoływać metody reaktora. W tym przykładzie zamień linię "listenTCP" na. Jest to bardziej elastyczne, ponieważ możesz ominąć punkty końcowe, niekoniecznie je uruchamiając. W nowszych wersjach Twisted będzie coraz więcej narzędzi do pracy z punktami końcowymi, więc jest to trochę bardziej przyszłościowe. –
Glyph
Co z wdrażaniem tego pakietu przy użyciu pakietu. Idealnie chciałbym uruchomić mój serwer za pomocą pojedynczego polecenia po zainstalowaniu go w virtualenv. Jaki jest zalecany sposób wysłania skryptu serwera wraz z pakietem? – Chris