【发布时间】:2017-11-06 18:49:07
【问题描述】:
当我们执行屏幕iphone屏幕锁定并返回时,每10秒后Socket会反复断开连接。
我在断开事件中为套接字连接编写了代码。所以每当套接字断开连接时,它都会自动连接。
我已经拿了标志isWantToConnect - 这个标志的工作是没有调用closeConnection方法,socket断开然后socket再次连接。
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
【问题讨论】:
标签: ios objective-c iphone swift sockets