我正在使用“www.example.com _forever”启动我的Python WebSocketws.run,另一个来源声明我应该使用“run_until_complete()”,但这些函数似乎只对Python asyncio可用。我如何停止一个WebSocket客户端?或者如何启动它而不永远运行。
ztigrdn81#
在python websockets中,您可以使用“ws.keep_running = False”来停止“永远运行”的websockets。这可能有点不直观,您可以选择另一个库,整体上可能工作得更好。下面的代码对我来说是有效的(使用ws.keep_running = False)。
class testingThread(threading.Thread): def __init__(self,threadID): threading.Thread.__init__(self) self.threadID = threadID def run(self): print str(self.threadID) + " Starting thread" self.ws = websocket.WebSocketApp("ws://localhost/ws", on_error = self.on_error, on_close = self.on_close, on_message=self.on_message,on_open=self.on_open) self.ws.keep_running = True self.wst = threading.Thread(target=self.ws.run_forever) self.wst.daemon = True self.wst.start() running = True; testNr = 0; time.sleep(0.1) while running: testNr = testNr+1; time.sleep(1.0) self.ws.send(str(self.threadID)+" Test: "+str(testNr)+") self.ws.keep_running = False; print str(self.threadID) + " Exiting thread"
c0vxltue2#
WebSocketApp上还有一个close方法,它将keep_running设置为False,并关闭套接字
WebSocketApp
close
keep_running
n3schb8v3#
文档中说要使用一个异步调度程序,比如rel。它将处理键盘中断,然后你可以在注册键盘中断事件时传入一个自定义的回调函数
3条答案
按热度按时间ztigrdn81#
在python websockets中,您可以使用“ws.keep_running = False”来停止“永远运行”的websockets。
这可能有点不直观,您可以选择另一个库,整体上可能工作得更好。
下面的代码对我来说是有效的(使用ws.keep_running = False)。
c0vxltue2#
WebSocketApp
上还有一个close
方法,它将keep_running
设置为False,并关闭套接字n3schb8v3#
文档中说要使用一个异步调度程序,比如rel。它将处理键盘中断,然后你可以在注册键盘中断事件时传入一个自定义的回调函数