Merge branch 'master' into 1.2
This commit is contained in:
commit
028afcaa2c
@ -1,6 +1,6 @@
|
||||
Pod::Spec.new do |s|
|
||||
s.name = "Socket.IO-Client-Swift"
|
||||
s.version = "1.2.0"
|
||||
s.version = "1.2.1"
|
||||
s.summary = "Socket.IO-client for Swift"
|
||||
s.description = <<-DESC
|
||||
Socket.IO-client for Swift.
|
||||
@ -12,7 +12,7 @@ Pod::Spec.new do |s|
|
||||
s.author = { "Erik" => "nuclear.ace@gmail.com" }
|
||||
s.ios.deployment_target = '8.0'
|
||||
s.osx.deployment_target = '10.10'
|
||||
s.source = { :git => "https://github.com/socketio/socket.io-client-swift.git", :tag => 'v1.2.0' }
|
||||
s.source = { :git => "https://github.com/socketio/socket.io-client-swift.git", :tag => 'v1.2.1' }
|
||||
s.source_files = "SwiftIO/**/*.swift"
|
||||
s.requires_arc = true
|
||||
# s.dependency 'Starscream', '~> 0.9' # currently this repo includes Starscream swift files
|
||||
|
||||
@ -31,10 +31,13 @@ public typealias AckCallback = (NSArray?) -> Void
|
||||
let event:String!
|
||||
var acked = false
|
||||
var callback:AckCallback?
|
||||
weak var socket:SocketIOClient?
|
||||
|
||||
init(event:String, ackNum:Int = 0) {
|
||||
|
||||
init(event:String, ackNum:Int = 0, socket:SocketIOClient) {
|
||||
self.ackNum = ackNum
|
||||
self.event = event
|
||||
self.socket = socket
|
||||
}
|
||||
|
||||
public func onAck(timeout:UInt64, withCallback callback:AckCallback) {
|
||||
@ -50,6 +53,7 @@ public typealias AckCallback = (NSArray?) -> Void
|
||||
|
||||
if !self!.acked {
|
||||
self?.executeAck(["No ACK"])
|
||||
self?.socket?.removeAck(self!)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -198,15 +198,16 @@ public class SocketIOClient: NSObject {
|
||||
|
||||
public func emitWithAck(event:String, _ args:AnyObject...) -> SocketAckHandler {
|
||||
if !self.connected {
|
||||
return SocketAckHandler(event: "fail")
|
||||
return SocketAckHandler(event: "fail", socket: self)
|
||||
}
|
||||
|
||||
self.currentAck++
|
||||
let ackHandler = SocketAckHandler(event: event, ackNum: self.currentAck)
|
||||
let ackHandler = SocketAckHandler(event: event,
|
||||
ackNum: self.currentAck, socket: self)
|
||||
self.ackHandlers.append(ackHandler)
|
||||
|
||||
dispatch_async(self.emitQueue) {[weak self] in
|
||||
self?._emit(event, args, ack: true)
|
||||
dispatch_async(self.emitQueue) {[weak self, ack = self.currentAck] in
|
||||
self?._emit(event, args, ack: ack)
|
||||
return
|
||||
}
|
||||
|
||||
@ -217,7 +218,7 @@ public class SocketIOClient: NSObject {
|
||||
return self.emitWithAck(event, args)
|
||||
}
|
||||
|
||||
private func _emit(event:String, _ args:[AnyObject], ack:Bool = false) {
|
||||
private func _emit(event:String, _ args:[AnyObject], ack:Int? = nil) {
|
||||
var frame:SocketEvent
|
||||
var str:String
|
||||
|
||||
@ -228,22 +229,22 @@ public class SocketIOClient: NSObject {
|
||||
}
|
||||
|
||||
if hasBinary {
|
||||
if !ack {
|
||||
if ack == nil {
|
||||
str = SocketEvent.createMessageForEvent(event, withArgs: items,
|
||||
hasBinary: true, withDatas: emitDatas.count, toNamespace: self.nsp)
|
||||
} else {
|
||||
str = SocketEvent.createMessageForEvent(event, withArgs: items,
|
||||
hasBinary: true, withDatas: emitDatas.count, toNamespace: self.nsp, wantsAck: self.currentAck)
|
||||
hasBinary: true, withDatas: emitDatas.count, toNamespace: self.nsp, wantsAck: ack)
|
||||
}
|
||||
|
||||
self.engine?.send(str, datas: emitDatas)
|
||||
} else {
|
||||
if !ack {
|
||||
if ack == nil {
|
||||
str = SocketEvent.createMessageForEvent(event, withArgs: items, hasBinary: false,
|
||||
withDatas: 0, toNamespace: self.nsp)
|
||||
} else {
|
||||
str = SocketEvent.createMessageForEvent(event, withArgs: items, hasBinary: false,
|
||||
withDatas: 0, toNamespace: self.nsp, wantsAck: self.currentAck)
|
||||
withDatas: 0, toNamespace: self.nsp, wantsAck: ack)
|
||||
}
|
||||
|
||||
self.engine?.send(str)
|
||||
@ -385,6 +386,10 @@ public class SocketIOClient: NSObject {
|
||||
}
|
||||
}
|
||||
|
||||
func removeAck(ack:SocketAckHandler) {
|
||||
self.ackHandlers = self.ackHandlers.filter {$0 === ack ? false : true}
|
||||
}
|
||||
|
||||
// We lost connection and should attempt to reestablish
|
||||
func tryReconnect() {
|
||||
if self.reconnectAttempts != -1 && self.currentReconnectAttempt + 1 > self.reconnectAttempts {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user