Pycrdt-websocket
Pycrdt-websocket 是一个用于 pycrdt 的异步 WebSocket 连接器。
文档:https://jupyter-server.github.io/pycrdt-websocket
源代码:https://github.com/jupyter-server/pycrdt-websocket
Pycrdt-websocket 是一个用于构建 WebSocket 服务器和客户端的 Python 库,旨在连接和同步共享文档。它可以用来创建协作式的 Web 应用程序。
以下图示展示了一个典型的架构。目标是让多个客户端共享一个文档。
每个客户端都有一个Doc
实例,表示其视图中的文档。共享文档也在服务器端的room 中存在。从概念上讲,room 是客户端共同协作文档的地方。客户端连接的 WebSocket 通过端点路径指向相应的 room。在下面的示例中,客户端 A 和 B 连接到路径为room-1
的 WebSocket,因此两者都进入了一个名为room-1
的房间。所有Doc
同步的逻辑由WebsocketProvider 处理。
每次更新共享文档时,可以使用store 将其持久化到磁盘,该存储可以是文件或数据库。
flowchart TD classDef room1 fill:#f96 classDef room2 fill:#bbf A[Client A<br>room-1]:::room1 <-->|WebSocket<br>Provider| server(WebSocket Server) B[Client B<br>room-1]:::room1 <-->|WebSocket<br>Provider| server C[Client C<br>room-2]:::room2 <-->|WebSocket<br>Provider| server D[Client D<br>room-2]:::room2 <-->|WebSocket<br>Provider| server server <--> room1((room-1<br>clients: A, B)):::room1 server <--> room2((room-2<br>clients: C, D)):::room2 A <-..-> room1 B <-..-> room1 C <-..-> room2 D <-..-> room2 room1 ---> store1[(Store)] room2 ---> store2[(Store)]
文档
针对中文版
# 调试mkdocsserve-fmkdocs.cn.ymlserve# 部署到github pagesmkdocsbuild-fmkdocs.cn.ymlgh-deploy