# websocket
# 示例
# websocket-client==1.3.2
from websocket import WebSocketApp, _exceptions
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(max_workers=5)
scheculer_ws = None
class WebsocketHandler(WebSocketApp):
def __init__(self, url, ws_name="ws"):
super().__init__(url=url)
self.namespace = ws_name
self.on_message = self.on_message_callback
self.on_error = self.on_error_callback
self.on_close = self.on_close_callback
self.on_open = self.on_open_callback
def on_message_callback(self, ws, message): # 服务器有数据更新时,主动推送过来的数据
pass
def on_error_callback(self, ws, error): # 程序报错时,就会触发on_error事件
pass
def on_close_callback(self, *args,**kwargs):
pass
def on_open_callback(self, ws): # 连接到服务器之后就会触发on_open事件,这里用于send数据
pass
def work_spin(self):
print("work_spin executed")
while True:
try:
self.run_forever(ping_timeout=5)
time.sleep(2)
continue
except KeyboardInterrupt:
self.close()
break
scheculer_ws = WebsocketHandler(url=settings.WFM_URL, ws_name="scheduler_ws")
executor.submit(scheculer_ws.work_spin)
← UDP聊天器 Python常见问题 →