From 0ed22eafd85f776118cf82b8ab087c1af373fae0 Mon Sep 17 00:00:00 2001 From: bryandel Date: Fri, 10 Nov 2017 03:05:39 +0800 Subject: [PATCH] Adds optional client key as part of connect message --- Sources/ParseLiveQuery/Internal/ClientPrivate.swift | 2 +- Sources/ParseLiveQuery/Internal/Operation.swift | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Sources/ParseLiveQuery/Internal/ClientPrivate.swift b/Sources/ParseLiveQuery/Internal/ClientPrivate.swift index 456b38bd..21ba00f6 100644 --- a/Sources/ParseLiveQuery/Internal/ClientPrivate.swift +++ b/Sources/ParseLiveQuery/Internal/ClientPrivate.swift @@ -130,7 +130,7 @@ extension Client: WebSocketDelegate { public func websocketDidConnect(socket: WebSocket) { let sessionToken = PFUser.current()?.sessionToken ?? "" - _ = self.sendOperationAsync(.connect(applicationId: applicationId, sessionToken: sessionToken)) + _ = self.sendOperationAsync(.connect(applicationId: applicationId, sessionToken: sessionToken, clientKey: clientKey)) } public func websocketDidDisconnect(socket: WebSocket, error: NSError?) { diff --git a/Sources/ParseLiveQuery/Internal/Operation.swift b/Sources/ParseLiveQuery/Internal/Operation.swift index 8cb3c0d6..cacd1606 100644 --- a/Sources/ParseLiveQuery/Internal/Operation.swift +++ b/Sources/ParseLiveQuery/Internal/Operation.swift @@ -11,15 +11,19 @@ import Foundation import Parse enum ClientOperation { - case connect(applicationId: String, sessionToken: String) + case connect(applicationId: String, sessionToken: String, clientKey: String?) case subscribe(requestId: Client.RequestId, query: PFQuery, sessionToken: String?) case update(requestId: Client.RequestId, query: PFQuery) case unsubscribe(requestId: Client.RequestId) var JSONObjectRepresentation: [String : Any] { switch self { - case .connect(let applicationId, let sessionToken): - return [ "op": "connect", "applicationId": applicationId, "sessionToken": sessionToken ] + case .connect(let applicationId, let sessionToken, let clientKey): + var message: [String: Any] = [ "op": "connect", "applicationId": applicationId, "sessionToken": sessionToken ] + if let clientKey = clientKey { + message.updateValue(clientKey, forKey: "clientKey") + } + return message case .subscribe(let requestId, let query, let sessionToken): var result: [String: Any] = [ "op": "subscribe", "requestId": requestId.value, "query": Dictionary(query: query) ]