我目前正在为一个小型后端使用FastAPI。RESTAPI部分可以正常工作。在下一步中,我需要查询websocket API并在FastAPI中处理它。我想过滤和转发传入的数据。当我启动应用程序时,websocket客户端开始运行,但实际的FastAPI在此之后不工作
我如何构建一个可以作为websocket客户端和服务器工作的FastAPI
这是我的密码:
from fastapi import FastAPI
from routers import foo
from services import bar as bar
app = FastAPI()
app.include_router(foo.router)
@app.on_event('startup')
async def startup_event():
await bar.wh_client()
class wh_client:
def __init__(self, ):
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://xx.xx.xx.xx:xxxxx/",
on_message=self.on_message,
on_error=self.on_error,
on_close=self.on_close)
self.ws = ws
self.ws.on_open = self.on_open
self.ws.run_forever()
def on_message(self, message, stuff):
print(message)
return message
def on_error(self, error):
return error
def on_close(self):
print("### closed ###")
def run(self, *args):
global driver
driver = True
while driver:
try:
time.sleep(1)
self.ws.send('message')
except KeyboardInterrupt:
driver = False
time.sleep(1)
self.ws.close()
print("thread terminating...")
def on_open(self, foo):
thread.start_new_thread(self.run, ())
目前没有回答
相关问题 更多 >
编程相关推荐