因此,我有這個使用高速緩存中的websockets進行扭曲的小型項目。客戶端和服務器之間的連接以及數據傳輸完美地工作,但是在TCP連接關閉後我很難退出程序。她的代碼是:在Twisted中關閉連接後退出Python程序
class MyClientProtocol(WebSocketClientProtocol):
def onConnect(self, response):
print("Server connected: {0}".format(response.peer))
def onOpen(self):
print("WebSocket connection open.")
def hello():
from twisted.internet import reactor
self.sendMessage(u"Hello, world!".encode('utf8'))
self.sendMessage(b"\x00\x01\x03\x04", isBinary=True)
#self.factory.reactor.callLater(1, hello)
#self.reactor.callFromThread(reactor.stop)
#reactor.callFromThread(reactor.stop)
#self.factory.reactor.callFromThread(reactor.stop)
# start sending messages every second ..
hello()
return
def onMessage(self, payload, isBinary):
if isBinary:
print("Binary message received: {0} bytes".format(len(payload)))
else:
print("Text message received: {0}".format(payload.decode('utf8')))
def onClose(self, wasClean, code, reason):
print("WebSocket connection closed: {0}".format(reason))
def WebCon():
import sys
from twisted.python import log
from twisted.internet import reactor
log.startLogging(sys.stdout)
factory = WebSocketClientFactory("ws://localhost:8080", debug=False)
factory.protocol = MyClientProtocol
reactor.connectTCP("127.0.0.1", 8080, factory)
reactor.run()
reactor.stop()
print("Should exit")
return
也許使用'quit()'方法會是一條路嗎? – JPeroutek
嘗試系統,退出和退出,他們都沒有工作。 –