6.启用 WebSocket 通知

WebSocket 通知用于将发生的一些相关事件通告给浏览器、Bitwarden 的桌面和浏览器扩展客户端,例如密码数据库中有条目被修改了或被删除了。收到通知后,客户端可以采取适当的操作,例如刷新已修改的条目,或从其本地缓存中移除已删除的条目。在此通知方案中,Bitwarden 客户端与 Bitwarden 服务器(在本案例中为 Vaultwarden)建立持久的 WebSocket 连接。每当服务器有需要报告的事件时,它都会通过此持久连接将其发送给客户端。

请注意,WebSocket 通知不适用于移动 (Android/iOS) Bitwarden 客户端。这些客户端使用原生推送通知服务(Android 为 FCM,iOS 为 APN)。这些必须使用 Bitwarden 云服务的推送证书单独配置。同样也适用于 v1.29.0。

自 Vaultwarden v1.29.0 起,WebSocket 默认启用。以前的版本需要反向代理,因为 WebSocket 运行在与默认的 HTTPS 端口不同的端口上。

旧的实现在 v1.29.0 中仍然可用,暂时不会在更新期间中断。但将来这将被移除。

如果您确实使用像 nginx 或 Apache HTTPd 这样的反向代理,那么您需要确保正确配置它以传递 WebSocket UpgradeConnection 标头。一些反向代理默认执行此操作,例如 Traefik。

自 Vaultwarden v1.29.0 起,旧的 WEBSOCKET_ENABLEDWEBSOCKET_PORT 不再需要,可以忽略。

事实上,如果您使用原生实现设置 WEBSOCKET_ENABLED 为默认的 false 值,将会减少 Vaultwarden 使用的资源(尽管不会那么多)。

示例配置包含在代理示例中。

请注意,某些示例尚未针对 v1.29.0 进行更新。

测试 WebSocket 连接

有两种方式可以测试连接是否正常工作:

  1. 打开浏览器的开发人员工具,转到网络选项卡然后筛选 WS/WebSockets。注销或刷新页面并再次登录,您应该会看到升级后的 WebSocket 连接的 101 响应。如果您单击该行,您应该能够看到消息。如果您没有在 /notifications/hub 上获得状态代码 101,则表示某些配置不正确。消息将显示在浏览器的控制台窗口中:[2023-12-01T00:00:00.000Z] Information: WebSocket connected to wss://HOST_NAME/notifications/hub?access_token=eyJ0eX......

  2. 打开两个不同的浏览器或隐身/隐私窗口。在两个浏览器上登录您的帐户。创建一个新的条目,或者重命名一个条目,在另一个浏览器中应该会立即收到更改。

最后更新于