iPhone屏幕锁定后,iOS插座反复断开连接

时间:2017-11-06 09:45:08

标签: ios objective-c iphone swift sockets

当我们做屏幕iphone屏幕锁定&回来,Socket每隔10秒就会重复断开连接。

我已经在disconnect事件中编写了socket连接的代码。因此,无论何时插座断开,它都会自动连接。

我已经取得了标志 isWantToConnect - 这个标志的工作没有调用closeConnection方法,套接字断开然后再次连接套接字。

    Initialization:
        var socket = SocketIOClient(socketURL: URL(string: kUrlApi.BaseUrl)!, config: [.log(false),.reconnects(false),.forcePolling(true),.forceWebsockets(true)])
        var isWantToConnect = false

    Connection Methods:
        func establishConnection() {
            isWantToConnect =  true
            if let objSocketEngine = SocketIOManager.sharedInstance.socket.engine, objSocketEngine.connected {
                return
            } else {
                socket.connect()
            }
        }

        func closeConnection() {
            isWantToConnect =  false
            guard let objSocketEngine = SocketIOManager.sharedInstance.socket.engine, objSocketEngine.connected else{
                return
            }
            socket.disconnect()
        }

    Disconnect Subscriber:
        func addDisconnectHandler() {
            socket.on(clientEvent: .disconnect) { (dataArray, ack) in
                print("Socket Disconnected !!! SocketSid : \(self.socket.sid ?? "") Time : \(Date())")
                if self.isWantToConnect{
                    self.perform(#selector(self.establishConnection), with: nil, afterDelay: 0.1)
                }
            }
        }

This is logs:

Socket Error !!! SocketSid :
Socket StatusChange !!! SocketSid :
Socket StatusChange !!! SocketSid :
Socket Disconnected !!! SocketSid : Time : 2017-11-06 08:06:45 +0000
Socket StatusChange !!! SocketSid :
Socket StatusChange !!! SocketSid : BjnJLzWfWeRSx8IFAABu
Socket Connected Successfully !!! SocketSid : BjnJLzWfWeRSx8IFAABu Time : 2017-11-06 08:06:46 +0000
Socket StatusChange !!! SocketSid : BjnJLzWfWeRSx8IFAABu
Socket StatusChange !!! SocketSid : BjnJLzWfWeRSx8IFAABu
Socket Disconnected !!! SocketSid : BjnJLzWfWeRSx8IFAABu Time : 2017-11-06 08:06:56 +0000
Socket StatusChange !!! SocketSid :
Socket StatusChange !!! SocketSid : tMPTz3G4vcmODifgAABv
Socket Connected Successfully !!! SocketSid : tMPTz3G4vcmODifgAABv Time : 2017-11-06 08:06:57 +0000
Socket StatusChange !!! SocketSid : tMPTz3G4vcmODifgAABv
Socket StatusChange !!! SocketSid : tMPTz3G4vcmODifgAABv
Socket Disconnected !!! SocketSid : tMPTz3G4vcmODifgAABv Time : 2017-11-06 08:07:07 +0000
Socket StatusChange !!! SocketSid :
Socket StatusChange !!! SocketSid : DGNxKJ6uH6rnAeusAABw
Socket Connected Successfully !!! SocketSid : DGNxKJ6uH6rnAeusAABw Time : 2017-11-06 08:07:07 +0000
Socket StatusChange !!! SocketSid : DGNxKJ6uH6rnAeusAABw
Socket StatusChange !!! SocketSid : DGNxKJ6uH6rnAeusAABw
Socket Disconnected !!! SocketSid : DGNxKJ6uH6rnAeusAABw Time : 2017-11-06 08:07:18 +0000
Socket StatusChange !!! SocketSid :
Socket StatusChange !!! SocketSid : fWE8kHldjkxnnDgsAABx
Socket Connected Successfully !!! SocketSid : fWE8kHldjkxnnDgsAABx Time : 2017-11-06 08:07:19 +0000
Socket StatusChange !!! SocketSid : fWE8kHldjkxnnDgsAABx
Socket StatusChange !!! SocketSid : fWE8kHldjkxnnDgsAABx
Socket Disconnected !!! SocketSid : fWE8kHldjkxnnDgsAABx Time : 2017-11-06 08:07:29 +0000
Socket StatusChange !!! SocketSid :
Socket StatusChange !!! SocketSid : 2FfWJL54HfyvWK62AABy
Socket Connected Successfully !!! SocketSid : 2FfWJL54HfyvWK62AABy Time : 2017-11-06 08:07:29 +0000
Socket StatusChange !!! SocketSid : 2FfWJL54HfyvWK62AABy
Socket StatusChange !!! SocketSid : 2FfWJL54HfyvWK62AABy
Socket Disconnected !!! SocketSid : 2FfWJL54HfyvWK62AABy Time : 2017-11-06 08:07:40 +0000
Socket StatusChange !!! SocketSid :
Socket StatusChange !!! SocketSid : AZVawjUwtF84VBB8AABz
Socket Connected Successfully !!! SocketSid : AZVawjUwtF84VBB8AABz Time : 2017-11-06 08:07:41 +0000

1 个答案:

答案 0 :(得分:0)

尝试使用此lib: 非常实用,完美无缺! https://github.com/daltoniam/Starscream