下一页 JS + Supabase 实时订阅订阅状态"closed"



我正在为一个使用Next JS和Supadase的学校项目的帮助台工作,并陷入了操作员和客户之间的实时聊天中。

我订阅了useEffect钩子中的表,并返回unsubscribe函数进行清理。

但当我更改票证时,有时订阅已建立,但状态已关闭,这会导致订阅停止发送回调。

我认为问题可能是在清理函数之后(甚至可能在清理过程中(调用新订阅,这甚至会导致新订阅关闭。但我不知道该如何避开。

有什么想法吗?这是使用的效果:

useEffect(() => {
getMessages(id)
const MessageSubscription = supabase
.from<definitions['messages']>('messages')
.on('INSERT', (message) => {
getMessages(id)
})
.subscribe()
async function removeMessageSubscription() {
await supabase.removeSubscription(MessageSubscription)
}
return () => {
removeMessageSubscription()
}
}, [])

useEffect可能会触发两次,并且可能会在实时事件中发生一些意外行为。

只需禁用严格模式,然后重试。

// next.config.js
module.exports = {
reactStrictMode: false,
}

相关内容

最新更新