FastAPI Websocket Pub/Sub 项目教程
1. 项目的目录结构及介绍
FastAPI Websocket Pub/Sub 项目的目录结构如下:
fastapi_websocket_pubsub/
├── examples/
│ └── pubsub_broadcaster_server_example.py
├── fastapi_websocket_pubsub/
│ ├── __init__.py
│ └── ...
├── scripts/
├── tests/
├── .editorconfig
├── .gitignore
├── LICENSE
├── MANIFEST.in
├── README.md
├── pytest.ini
├── requirements-dev.txt
├── requirements.txt
├── setup.cfg
├── setup.py
目录结构介绍
examples/
: 包含示例代码,如pubsub_broadcaster_server_example.py
。fastapi_websocket_pubsub/
: 项目核心代码目录,包含初始化文件__init__.py
和其他相关文件。scripts/
: 包含项目使用的脚本文件。tests/
: 包含项目的测试文件。.editorconfig
,.gitignore
: 编辑器配置和 Git 忽略文件。LICENSE
: 项目许可证文件。MANIFEST.in
: 打包清单文件。README.md
: 项目说明文档。pytest.ini
: pytest 配置文件。requirements-dev.txt
,requirements.txt
: 开发和生产环境依赖文件。setup.cfg
,setup.py
: 项目打包和安装配置文件。
2. 项目的启动文件介绍
项目的启动文件通常位于 examples/
目录下,例如 pubsub_broadcaster_server_example.py
。以下是该文件的简要介绍:
from fastapi import FastAPI
from fastapi_websocket_pubsub import PubSubEndpoint
app = FastAPI()
endpoint = PubSubEndpoint()
endpoint.register_route(app, path="/pubsub")
@app.websocket("/pubsub")
async def websocket_rpc_endpoint(websocket: WebSocket):
await endpoint.main_loop(websocket)
启动文件介绍
from fastapi import FastAPI
: 导入 FastAPI 框架。from fastapi_websocket_pubsub import PubSubEndpoint
: 导入 PubSubEndpoint 类。app = FastAPI()
: 创建 FastAPI 应用实例。endpoint = PubSubEndpoint()
: 创建 PubSubEndpoint 实例。endpoint.register_route(app, path="/pubsub")
: 注册 PubSub 路由。@app.websocket("/pubsub")
: 定义 WebSocket 端点。await endpoint.main_loop(websocket)
: 启动 PubSub 主循环。
3. 项目的配置文件介绍
项目的配置文件主要包括 setup.cfg
, setup.py
, requirements.txt
, 和 requirements-dev.txt
。
setup.cfg
setup.cfg
文件用于配置打包和安装选项,例如:
[metadata]
name = fastapi_websocket_pubsub
version = 0.1.0
description = A fast and durable Pub/Sub channel over Websockets
author = Permit.io
author_email = contact@permit.io
url = https://github.com/permitio/fastapi_websocket_pubsub
license = MIT
setup.py
setup.py
文件用于定义项目的安装脚本,例如:
from setuptools import setup, find_packages
setup(
name="fastapi_websocket_pubsub",
version="0.1.0",
packages=find_packages(),
install_requires=[
"fastapi",
"pydantic",
"websockets",
],
)
requirements.txt 和 requirements-dev.txt
requirements.txt
和 requirements-dev.txt
文件用于列出项目依赖和开发依赖,例如:
fastapi
pydantic
websockets
pytest
flake8
配置文件介绍
setup.cfg
: 包含项目的元数据和打包配置。setup.py
: 定义项目的安装脚本和依赖。requirements.txt
: 列出项目运行所需的依赖。- `