我试图让我的Vue.js应用程序与我的FastAPI(基于星体)本地服务器使用websockets进行通信。我尝试使用与其示例中的代码完全相同的代码:https://fastapi.tiangolo.com/tutorial/websockets/。但是发生了一些奇怪的事情,因为我的服务器不能从原因开始:AttributeError: 'FastAPI' object has no attribute 'websocket'。这很奇怪,因为这个确切的代码是FastAPI的正式文档。
之后,我使用了Starlette示例代码:https://www.starlette.io/websockets/。然而,当我试图连接到它时,FastApi会打印到终端:WARNING: Invalid HTTP request received.
我尝试使用另一个客户机,简单的WebSocket客户机:https://chrome.google.com/webstore/detail/simple-websocket-client/pfdhoblngboilpfeibdedpjgfnlcodoo,但是终端上也出现了相同的错误。
我在这里做错什么了?首先,我觉得奇怪的是,FastAPI代码似乎无法在我的计算机上工作,有人知道为什么吗?
提前感谢!
发布于 2019-05-29 07:32:43
显然,WebSocket功能是在刚刚发布的FastAPI 0.24中添加的。我用的是旧版本。
发布于 2021-07-13 06:02:38
运行pip install websockets并按以下方式配置它:
from fastapi import FastAPI, WebSocket
@app.websocket("/ws")
async def send_data(websocket:WebSocket):
print('CONNECTING...')
await websocket.accept()
while True:
try:
await websocket.receive_text()
resp = {
"message":"message from websocket"
}
await websocket.send_json(resp)
except Exception as e:
print(e)
break
print("CONNECTION DEAD...")https://stackoverflow.com/questions/56347815
复制相似问题