提问人:Rahele Nazari 提问时间:8/27/2023 更新时间:8/27/2023 访问量:54
注销时关闭 WebSocket 连接
Close WebSocket connection on logout
问:
我正在开发一个 React 应用程序,其中我有一个访问提供程序来管理用户身份验证和授权,并且我还使用 Action Cable 库进行 WebSocket 通信。
我面临一个问题:
- 注销时关闭 WebSocket 连接:我不确定在用户注销应用程序时关闭 WebSocket 连接的最佳做法。 目前,我有一个处理用户身份验证的 AccessProvider 组件和一个在注销时触发的 logoutUser 函数。在这种情况下,如何正确关闭 WebSocket 连接? (我将 AccessProvider 放在 ActioncableProvider 中,这样我就可以在那里调用 useActioncableContext,然后在用户注销时断开连接。但是,我意识到,当用户未通过身份验证时,会被重定向到登录页面,登录...然后 ActioncableProvider 保留配置了空/无效令牌的消费者实例)
这是我的代码的简化版本供参考:
// ... (other imports and code)
function AccessProvider() {
// ... (authentication logic)
return (
<AccessContext.Provider value={...}>
{/* Render ActioncableProvider only when authorized */}
{user.isAuthorized && <ActioncableProvider />}
<Outlet />
</AccessContext.Provider>
);
}
以及处理实时更新的 ActioncableProvider 组件:
// ... (other imports and code)
function ActioncableProvider() {
// ... (Actioncable logic)
return (
<ActioncableContext.Provider value={...}>
<Outlet />
</ActioncableContext.Provider>
);
}
答: 暂无答案
评论