使用方法
使用方法
有两种方式可以使用 hocuspocus。可以使用内置服务器,也可以与其它框架一起使用,例如与 Express。
自 v4 起,Hocuspocus 支持多个运行时:Node.js(使用 ws 或 uWebSockets.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) | 创建与文档的本地连接。 |