Swift 如何在应用程序聊天xcode中断开非活动用户的连接
我试图找到一种方法,当应用程序在后台超过120秒时,断开活动用户与应用程序聊天的连接,但是计时器似乎在后台不工作,这是代码Swift 如何在应用程序聊天xcode中断开非活动用户的连接,swift,xcode,swift5,Swift,Xcode,Swift5,我试图找到一种方法,当应用程序在后台超过120秒时,断开活动用户与应用程序聊天的连接,但是计时器似乎在后台不工作,这是代码 func sceneDidEnterBackground(_ scene: UIScene) { Timer.scheduledTimer(withTimeInterval: 3, repeats: false) { (timer) in print("start the logout code")
func sceneDidEnterBackground(_ scene: UIScene) {
Timer.scheduledTimer(withTimeInterval: 3, repeats: false) { (timer) in
print("start the logout code")
}
}
在代码中,您可以看到3秒,因为即使是3秒,它也无法工作。你能告诉我什么是我可以使用的最好的方法,这样我就可以注销用户,而不让他继续出现在在线列表中吗?背景工作非常有限,我们无法以100%的概率进行此类计算。这个逻辑最好放在后端我自己正在开发一个聊天应用程序,我遇到了这个问题,花了很长时间才找到解决方法 我注意到后台不会给我很长时间来注销用户,所以我决定何时登录用户或应用程序:
sceneddisconnect
if Auth.auth().currentUser != nil {
print("put offline")
user.logout()
}
sceneDidBecomeActive
if Auth.auth().currentUser != nil {
user.offline()
}
应用程序将终止
脱机
,然后注销
用户,最后从数据库中删除用户
我希望这项技术能对你有所帮助。当你在后台时,你不能做任何事情,你被暂停。如果您想注销用户,因为用户在后台,请在用户进入后台时注销该用户。@matt没有意义,因此如果用户误进入后台,我会注销他吗?我明白,我只是想给人一种现实的感觉。不存在在用户进入后台120秒后做某事的情况。事情就是这样。谢谢你花时间给出答案。!你可以:-1)编辑你的答案,这样答案就更详细了。2) 解释你想用这个答案达到什么目的,以及你想说什么。?有关更多信息,请参见帮助中心中的“如何写出好答案”(如何提问:)