FastAPI 中怎么使用 WebSocket 协议

本文介绍了在 FastAPI 中使用 WebSocket 协议的方法

用 Apifox,节省研发团队的每一分钟

FastAPI 中怎么使用 WebSocket 协议

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

WebSocket 是一种在 Web 应用程序中实现双向通信的协议,它允许客户端和服务器之间进行实时的、低延迟的通信。FastAPI 是一个基于 Python 的现代 Web 框架,它提供了内置支持 WebSocket 的功能。本文将介绍在 FastAPI 中如何使用 WebSocket 协议,包括如何使用、实践案例以及在 IDE 编辑器中运行的步骤。

FastAPI 中使用 WebSocket

首先,确保你已经安装了 FastAPI 和 WebSocket。你可以通过以下命令使用 pip 安装 FastAPI 和 WebSocket:

pip install fastapi

pip install websockets


接下来,我们将创建一个简单的 FastAPI 应用程序,并添加 WebSocket 的支持。请在你的 IDE 编辑器中创建一个名为 fastapi-ws.py 的文件,并将以下代码粘贴到其中:

from fastapi import FastAPI, WebSocket

app = FastAPI()

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    while True:
        data = await websocket.receive_text()
        await websocket.send_text(f"Message received: {data}")


if __name__ == "__main__":
    import uvicorn

    uvicorn.run(app, host="127.0.0.1", port=8000)

在上面的代码中,我们创建了一个 /ws 的 WebSocket 路由,用于处理 WebSocket 连接。在 websocket_endpoint() 函数中,我们使用 WebSocket 类作为参数,并调用 accept() 方法接受 WebSocket 连接。然后,我们通过一个无限循环来处理接收和发送消息的逻辑。

运行程序

要运行 FastAPI 应用程序,并测试 WebSocket 功能,我们需要使用 uvicorn 这样的 ASGI 服务器。请确保你已经安装了 uvicorn。你可以通过以下命令使用 pip 安装它:

pip install uvicorn


在你的 IDE 编辑器中,打开终端并导航到存储 fastapi-ws.py 文件的目录。然后运行以下命令启动应用程序:

uvicorn fastapi-ws:app --reload


现在,你可以使用 WebSocket 客户端工具(如浏览器的开发者工具中的 Console 或专门的 WebSocket 客户端应用程序)连接到 ws://localhost:8000/ws。你将能够发送消息并接收来自服务器的回复。

使用 Apifox 连接调试

Apifox 是一个集 API 文档、API 调试、API Mock和API 自动化测试于一体的 API 协作平台,支持 http(s)、gRPC、WebSocket 等协议,我们可以通过 Apifox 来更方便的调试 FastAPI 接口。

在 Apifox 中新建一个项目后,在项目中添加 WebSocket 接口,并填入 ws://localhost:8000/ws

FastAPI 中使用 WebSocket 协议
添加 WebSocket 接口


点击连接按钮后,即可填入信息并发送,最后将会收到响应信息:

FastAPI 中使用 WebSocket 协议
成功连接

总结

本文介绍了在 FastAPI 中使用 WebSocket 协议的方法。通过创建一个 WebSocket 路由和使用 WebSocket 类处理连接,我们能够实现实时的双向通信。在实践案例中,我们展示了一个简单的示例,其中接收客户端发送的消息并将其回显给客户端。


FastAPI 提供了强大的内置 WebSocket 支持,使得在 Web 应用程序中实现实时通信变得更加简单和高效。同时,使用 Apifox 进行接口调试,大大提高了项目的开发效率,图形化的操作界面也更加方便。

知识扩展

了解更多 FastAPI 相关使用技巧:


参考链接:

  • FastAPI 官网:https://fastapi.tiangolo.com/
  • WebSocket 协议规范:https://datatracker.ietf.org/doc/html/rfc6455