当我们做屏幕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