iOS 端在做IM切换的时候,链接状态改为0以后,状态通知就再也没有回调问题

Wayland 13天前 158

onConnectionStatusChanged(_:): IM连接状态更改connecting_0

上传的附件:
最新回复 (12)
  • Wayland 13天前
    引用 2
    func login(uid: String, token: String) -> ConnectResult {
            guard enableIM() else { return .disable }
            let currentTime = Date().timeIntervalSince1970
            guard currentTime - lastConnectTime > 3 else { return .minimumTimeInterval }
            addUserDevice()
            lastConnectTime = currentTime
            return .success(lastConnectTime: WFCCNetworkService.sharedInstance().connect(uid, token: token))
        }
        
  • Wayland 13天前
    引用 3
    IMKit.shared.logout()
                    DispatchQueue.main.asyncAfter(deadline: .now() + 3.5) {
                        IMKit.shared.switchIm = true
                        HLUserLogic.loginIM(userId: entity1.mloginToken.userId, token: entity1.mloginToken.token, needSyncMessage: false)
                    } 这里做了3.5秒延迟链接也不行
  • Wayland 13天前
    引用 4
    在切换之前我会调用func logoutWF(clearSession: Bool = false) {
            connected = false
            setActive(false)
            self.status = .logout
            WFCCNetworkService.sharedInstance().disconnect(true, clearSession: false)
            IMShareExtensionKit.logout()
        } 退出当前登录的IM

    然后3.5秒后 我会调用WFCCNetworkService.sharedInstance().connect(uid, token: token)进行新IM的登录
    然后这个状态回调监听通知“kConnectionStatusChanged”就一直处于0状态,再也没有其他状态返回。
  • x86 13天前
    引用 5
    从日志看,你切换用户时,userId 变了,但 token 不变

    是不是没有重新获取 token?
  • Wayland 13天前
    引用 6
    重新获取了
  • Wayland 13天前
    引用 7
    x86 从日志看,你切换用户时,userId 变了,但 token 不变 是不是没有重新获取 token?
    重新获取了
  • Wayland 13天前
    引用 8
    x86 从日志看,你切换用户时,userId 变了,但 token 不变 是不是没有重新获取 token?
    好的,我打印下前后token看看
  • Wayland 13天前
    引用 9
    x86 从日志看,你切换用户时,userId 变了,但 token 不变 是不是没有重新获取 token?
    他有的时候切换成功了,有的时候切换不成功,没有回调状态
  • HeavyRain 13天前
    引用 10
    感觉像是网络不稳定,当退出登陆时,退出请求通过长连接发送,结果没有响应。有个办法是退出登陆的接口两个参数都用false,这样就不会有个请求发送到im服务了
  • HeavyRain 13天前
    引用 11
    网络的问题还是需要你们查一下,有sdk认为链接可用的情况,而且一秒钟之前还成功交互,但下一个请求就无响应超时了
  • Wayland 13天前
    引用 12
    x86 从日志看,你切换用户时,userId 变了,但 token 不变 是不是没有重新获取 token?
    [DEBUG] 
  • Wayland 13天前
    引用 13
    我已经确定了token确实我已经更新了,都是使用全新的token,网络应该是没有问题,因为我重启都是可以的。主要是没有回调,导致我服务指导当前账号链接的状态
返回