From cf14eb27a3957ee0ac9d802dfae470b356260252 Mon Sep 17 00:00:00 2001 From: Erik Date: Mon, 9 Nov 2015 11:33:41 -0500 Subject: [PATCH] emit error when trying to emit when not connected --- SocketIOClientSwift/SocketIOClient.swift | 4 +++- SocketIOClientSwift/SocketIOClientOption.swift | 2 +- SocketIOClientSwift/SocketParser.swift | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/SocketIOClientSwift/SocketIOClient.swift b/SocketIOClientSwift/SocketIOClient.swift index 97db195..7a8e748 100644 --- a/SocketIOClientSwift/SocketIOClient.swift +++ b/SocketIOClientSwift/SocketIOClient.swift @@ -254,6 +254,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { */ public func emit(event: String, withItems items: [AnyObject]) { guard status == .Connected else { + handleEvent("error", data: ["Tried emitting \(event) when not connected"], isInternalMessage: true) return } @@ -279,6 +280,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { private func _emit(data: [AnyObject], ack: Int? = nil) { guard status == .Connected else { + handleEvent("error", data: ["Tried emitting when not connected"], isInternalMessage: true) return } @@ -339,7 +341,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { Causes an event to be handled. Only use if you know what you're doing. */ public func handleEvent(event: String, data: [AnyObject], isInternalMessage: Bool, - wantsAck ack: Int? = nil) { + withAck ack: Int? = nil) { guard status == .Connected || isInternalMessage else { return } diff --git a/SocketIOClientSwift/SocketIOClientOption.swift b/SocketIOClientSwift/SocketIOClientOption.swift index b016813..154c381 100644 --- a/SocketIOClientSwift/SocketIOClientOption.swift +++ b/SocketIOClientSwift/SocketIOClientOption.swift @@ -124,7 +124,7 @@ extension Set where Element: ClientOption { for (rawKey, value) in dict { if let key = rawKey as? String, opt = SocketIOClientOption.keyValueToSocketIOClientOption(key, value: value) { - options.insert(opt) + options.insertIgnore(opt) } } diff --git a/SocketIOClientSwift/SocketParser.swift b/SocketIOClientSwift/SocketParser.swift index 86198c7..6c5c2a6 100644 --- a/SocketIOClientSwift/SocketParser.swift +++ b/SocketIOClientSwift/SocketParser.swift @@ -42,7 +42,7 @@ class SocketParser { switch pack.type { case .Event where isCorrectNamespace(pack.nsp, socket): socket.handleEvent(pack.event, data: pack.args ?? [], - isInternalMessage: false, wantsAck: pack.id) + isInternalMessage: false, withAck: pack.id) case .Ack where isCorrectNamespace(pack.nsp, socket): socket.handleAck(pack.id, data: pack.data) case .BinaryEvent where isCorrectNamespace(pack.nsp, socket): @@ -170,7 +170,7 @@ class SocketParser { if packet.type != .BinaryAck { socket.handleEvent(packet.event, data: packet.args ?? [], - isInternalMessage: false, wantsAck: packet.id) + isInternalMessage: false, withAck: packet.id) } else { socket.handleAck(packet.id, data: packet.args) }