使用方法

使用方法

有两种方式可以使用 hocuspocus。可以使用内置服务器,也可以与其它框架一起使用,例如与 Express

自 v4 起,Hocuspocus 支持多个运行时:Node.js(使用 wsuWebSockets.js)、Bun、Deno,以及 Cloudflare Workers。内置的 Server 类在 Node.js 上仍然像以前一样工作;对于其他运行时,请直接使用 Hocuspocus,并将任意 WebSocketLike 实例传递给 handleConnection()。需要 Node.js 22+。

Hocuspocus Server

使用内置服务器时,请确保从 @hocuspocus/server 导入 Server。服务器配置请参考 配置说明。内置服务器会启动一个 web 服务器和一个 websocket 服务器。

import { Server } from "@hocuspocus/server";

const server = new Server({
  port: 1234,
});

server.listen();

你可以通过 web 服务器访问 hocuspocus 实例,并调用其方法

// …

server.hocuspocus.getDocumentsCount();

停止服务器

调用 server.destroy() 可干净地关闭服务器——例如在 SIGINT / SIGTERM 处理程序中、测试中,或开发期间热重载时。

server.destroy();

Hocuspocus

如前所述,你也可以在不使用内置服务器的情况下使用 hocuspocus。请确保从 @hocuspocus/server 包中导入 Hocuspocus

import { Hocuspocus } from "@hocuspocus/server";

// 配置 hocuspocus
const hocuspocus = new Hocuspocus({
  name: "hocuspocus-fra1-01",
})

// …

请查看示例以了解更多内容。

方法

Server

方法描述
listen(port, callback)启动服务器。
destroy()停止服务器。

Hocuspocus

方法描述
configure(configuration)传入自定义配置。
handleConnection(incoming, request, context)绑定服务器到现有的服务器实例。
getDocumentsCount()获取活跃文档的总数。
getConnectionsCount()获取活跃连接的总数。
closeConnections(documentName?)关闭所有连接,或指定文档的连接。
openDirectConnection(documentName, context)创建与文档的本地连接。