From b715e8f4e324b14426b7d36e07d71e05c8b00d0e Mon Sep 17 00:00:00 2001 From: Alexander Gorbachev Date: Wed, 20 Feb 2019 16:43:37 +0300 Subject: [PATCH] Add to callback queue to centrifuge client and socket --- CentrifugeiOS/Classes/Centrifuge.swift | 4 ++-- CentrifugeiOS/Classes/CentrifugeClientImpl.swift | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CentrifugeiOS/Classes/Centrifuge.swift b/CentrifugeiOS/Classes/Centrifuge.swift index c0d9fed..2be21a7 100644 --- a/CentrifugeiOS/Classes/Centrifuge.swift +++ b/CentrifugeiOS/Classes/Centrifuge.swift @@ -22,8 +22,8 @@ public enum CentrifugeErrorCode: Int { public typealias CentrifugeMessageHandler = (CentrifugeServerMessage?, Error?) -> Void public final class Centrifuge { - public class func client(url: URL, creds: CentrifugeCredentials, delegate: CentrifugeClientDelegate) -> CentrifugeClient { - return CentrifugeClientImpl(url: url, credentials: creds, delegate: delegate) + public class func client(url: URL, creds: CentrifugeCredentials, delegate: CentrifugeClientDelegate, callBackQueue: DispatchQueue = DispatchQueue.main) -> CentrifugeClient { + return CentrifugeClientImpl(url: url, credentials: creds, delegate: delegate, callBackQueue: callBackQueue) } public class func createToken(string: String, key: String) -> String { diff --git a/CentrifugeiOS/Classes/CentrifugeClientImpl.swift b/CentrifugeiOS/Classes/CentrifugeClientImpl.swift index 19728cb..2d7426b 100644 --- a/CentrifugeiOS/Classes/CentrifugeClientImpl.swift +++ b/CentrifugeiOS/Classes/CentrifugeClientImpl.swift @@ -9,10 +9,11 @@ import Starscream final class CentrifugeClientImpl: CentrifugeClient { - init(url: URL, credentials: CentrifugeCredentials, delegate: CentrifugeClientDelegate) { + init(url: URL, credentials: CentrifugeCredentials, delegate: CentrifugeClientDelegate, callBackQueue: DispatchQueue) { self.url = url self.creds = credentials self.delegate = delegate + self.callBackQueue = callBackQueue self.builder = CentrifugeClientMessageBuilderImpl() self.parser = CentrifugeServerMessageParserImpl() } @@ -87,7 +88,13 @@ final class CentrifugeClientImpl: CentrifugeClient { send(message: message) } - private lazy var webSocket = WebSocket(with: url, delegate: self) + private lazy var webSocket: WebSocket = { + let webSocket = WebSocket(with: url, delegate: self) + webSocket.delegate = self + webSocket.callbackQueue = callBackQueue + return webSocket + }() + private let callBackQueue: DispatchQueue private let url: URL private let creds: CentrifugeCredentials private let builder: CentrifugeClientMessageBuilder