Skip to content

Instantly share code, notes, and snippets.

@dfalmeida
Last active March 9, 2018 16:27
Show Gist options
  • Save dfalmeida/da7356f519b2a4d34d33f5153cf288be to your computer and use it in GitHub Desktop.
Save dfalmeida/da7356f519b2a4d34d33f5153cf288be to your computer and use it in GitHub Desktop.
public func connect(with onConnect: @escaping () -> (), retryOnDisconnect: Bool = true) {
guard let socket = socket else { return }
self.retryOnDisconnect = retryOnDisconnect
socket.onConnect = onConnect
socket.onDisconnect = {[weak self] error in
guard let weakSelf = self else { return }
weakSelf.reconnect()
}
if !socket.isConnected {
socket.connect()
}
}
private func reconnect() {
guard let socket = socket else { return }
//try to reconnect after a delay
if retryOnDisconnect == true {
DispatchQueue.main.asyncAfter(deadline: .now() + WebSocket.reconnectInterval) {
socket.connect()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment