状态和变化事件
协作提供者中的事件让您能够响应各种状态和变化,例如成功的连接或身份验证更新。您可以在提供者初始化期间附加事件监听器,或者根据应用程序的需要稍后添加它们。
使用提供者事件
| 事件 | 描述 |
|---|---|
open | 在 WebSocket 连接打开时触发。 |
connect | 在提供者连接到服务器时触发。 |
authenticated | 表示客户端身份验证成功。 |
authenticationFailed | 在客户端身份验证失败时触发。 |
status | 跟踪连接状态的变化。 |
close | 在 WebSocket 连接关闭时触发。 |
disconnect | 在提供者断开连接时触发。 |
destroy | 表示提供者即将被销毁。 |
message | 由传入消息触发。 |
outgoingMessage | 在消息发送之前触发。 |
synced | 表示 Yjs 文档的初始成功同步。 |
stateless | 在接收到无状态消息时触发。 |
awarenessUpdate | 在用户意识信息更新时触发。 |
awarenessChange | 在意识状态变化时触发。 |
配置事件监听器
要立即跟踪事件,请直接将事件监听器传递给提供者的构造函数。这确保监听器从一开始就处于活动状态。
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()
})