emit error when trying to emit when not connected

This commit is contained in:
Erik 2015-11-09 11:33:41 -05:00
parent 0de8a65ff4
commit cf14eb27a3
3 changed files with 6 additions and 4 deletions

View File

@ -254,6 +254,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
*/ */
public func emit(event: String, withItems items: [AnyObject]) { public func emit(event: String, withItems items: [AnyObject]) {
guard status == .Connected else { guard status == .Connected else {
handleEvent("error", data: ["Tried emitting \(event) when not connected"], isInternalMessage: true)
return return
} }
@ -279,6 +280,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
private func _emit(data: [AnyObject], ack: Int? = nil) { private func _emit(data: [AnyObject], ack: Int? = nil) {
guard status == .Connected else { guard status == .Connected else {
handleEvent("error", data: ["Tried emitting when not connected"], isInternalMessage: true)
return 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. Causes an event to be handled. Only use if you know what you're doing.
*/ */
public func handleEvent(event: String, data: [AnyObject], isInternalMessage: Bool, public func handleEvent(event: String, data: [AnyObject], isInternalMessage: Bool,
wantsAck ack: Int? = nil) { withAck ack: Int? = nil) {
guard status == .Connected || isInternalMessage else { guard status == .Connected || isInternalMessage else {
return return
} }

View File

@ -124,7 +124,7 @@ extension Set where Element: ClientOption {
for (rawKey, value) in dict { for (rawKey, value) in dict {
if let key = rawKey as? String, opt = SocketIOClientOption.keyValueToSocketIOClientOption(key, value: value) { if let key = rawKey as? String, opt = SocketIOClientOption.keyValueToSocketIOClientOption(key, value: value) {
options.insert(opt) options.insertIgnore(opt)
} }
} }

View File

@ -42,7 +42,7 @@ class SocketParser {
switch pack.type { switch pack.type {
case .Event where isCorrectNamespace(pack.nsp, socket): case .Event where isCorrectNamespace(pack.nsp, socket):
socket.handleEvent(pack.event, data: pack.args ?? [], socket.handleEvent(pack.event, data: pack.args ?? [],
isInternalMessage: false, wantsAck: pack.id) isInternalMessage: false, withAck: pack.id)
case .Ack where isCorrectNamespace(pack.nsp, socket): case .Ack where isCorrectNamespace(pack.nsp, socket):
socket.handleAck(pack.id, data: pack.data) socket.handleAck(pack.id, data: pack.data)
case .BinaryEvent where isCorrectNamespace(pack.nsp, socket): case .BinaryEvent where isCorrectNamespace(pack.nsp, socket):
@ -170,7 +170,7 @@ class SocketParser {
if packet.type != .BinaryAck { if packet.type != .BinaryAck {
socket.handleEvent(packet.event, data: packet.args ?? [], socket.handleEvent(packet.event, data: packet.args ?? [],
isInternalMessage: false, wantsAck: packet.id) isInternalMessage: false, withAck: packet.id)
} else { } else {
socket.handleAck(packet.id, data: packet.args) socket.handleAck(packet.id, data: packet.args)
} }