合作提供者事件是什么?
协作提供者的事件允许您对各种状态和变化做出响应,比如成功连接或身份验证更新。根据应用需求,您可以在初始化时附加事件监听器,或者之后再添加。
主要事件及其用途
事件 | 描述 |
---|---|
open | 当 WebSocket 连接建立时触发。 |
connect | 提供者成功连接到服务器时触发。 |
authenticated | 指示客户端成功身份验证。 |
authenticationFailed | 当客户端身份验证失败时触发。 |
status | 反映连接状态的变化。 |
message | 捕获传入的消息。 |
outgoingMessage | 在发送消息之前信号。 |
synced | 标记 Y.js 文档的初始成功同步。 |
close | 当 WebSocket 连接关闭时触发。 |
disconnect | 提供者断开连接时发生。 |
destroy | 表示提供者即将销毁。 |
awarenessUpdate | 跟踪用户意识信息的更新。 |
awarenessChange | 表示意识状态的变化。 |
stateless | 接收无状态消息时触发。 |
配置事件监听器
为了立即跟踪事件,您可以在提供者的构造函数中直接传递事件监听器。这种方法保证了从一开始就启用监听器。
const provider = new TiptapCollabProvider({
appId: "", // 用于云环境,请在本地部署时替换为baseUrl
name: "example-document", // 文档标识符
token: "", // 您的身份验证JWT令牌
document: ydoc,
onOpen() {
console.log("WebSocket连接打开.");
},
onConnect() {
console.log("已连接到服务器.");
},
// 请参阅以下所有事件监听器...
});
动态事件绑定
对于需要初始化后添加或移除监听器的情况,提供者支持动态绑定和解绑事件处理程序。
绑定事件监听器
const provider = new TiptapCollabProvider({
// ...
});
provider.on("synced", () => {
console.log("文档已同步.");
});
解绑事件监听器
const onMessage = () => {
console.log("收到新消息.");
};
// 绑定
provider.on("message", onMessage);
// 解绑
provider.off("message", onMessage);
事件处理的用例
实时连接状态
使用 onConnect
和 onDisconnect
事件来实时向用户提供连接状态反馈,提升用户体验。
provider.on("connect", () => {
showStatus("已连接");
});
provider.on("disconnect", () => {
showStatus("已断开连接");
});
文档同步状态
synced
事件可用于在文档首次完全同步时通知用户,确保他们开始使用最新版本。
provider.on("synced", () => {
alert("文档初始化完成");
});
处理身份验证问题
使用 authenticationFailed
事件捕获身份验证错误并提示用户重新认证,保持安全访问。
provider.on("authenticationFailed", ({ reason }) => {
console.error("身份验证失败:", reason);
requestUserReauthentication();
});