Merge branch 'master' into 1.2

This commit is contained in:
Erik 2015-03-27 11:30:41 -04:00
commit f669267f51
3 changed files with 39 additions and 14 deletions

View File

@ -47,9 +47,9 @@ Methods
-------
1. `socket.on(name:String, callback:((data:NSArray?, ack:AckEmitter?) -> Void))` - Adds a handler for an event. Items are passed by an array. `ack` can be used to send an ack when one is requested. See example.
2. `socket.onAny(callback:((event:String, items:AnyObject?)) -> Void)` - Adds a handler for all events. It will be called on any received event.
3. `socket.emit(event:String, _ args:AnyObject...)` - Sends a message. Can send multiple args.
3. `socket.emit(event:String, _ items:AnyObject...)` - Sends a message. Can send multiple items.
4. `socket.emitObjc(event:String, withItems items:[AnyObject])` - `emit` for Objective-C
5. `socket.emitWithAck(event:String, _ args:AnyObject...) -> SocketAckHandler` - Sends a message that requests an acknowledgement from the server. Returns a SocketAckHandler which you can use to add an onAck handler. See example.
5. `socket.emitWithAck(event:String, _ items:AnyObject...) -> SocketAckHandler` - Sends a message that requests an acknowledgement from the server. Returns a SocketAckHandler which you can use to add an onAck handler. See example.
6. `socket.emitWithAckObjc(event:String, withItems items:[AnyObject]) -> SocketAckHandler` - `emitWithAck` for Objective-C.
7. `socket.connect()` - Establishes a connection to the server. A "connect" event is fired upon successful connection.
8. `socket.connectWithParams(params:[String: AnyObject])` - Establishes a connection to the server passing the specified params. A "connect" event is fired upon successful connection.

View File

@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "Socket.IO-Client-Swift"
s.version = "1.4.0"
s.version = "1.4.2"
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.4.0' }
s.source = { :git => "https://github.com/socketio/socket.io-client-swift.git", :tag => 'v1.4.2' }
s.source_files = "SwiftIO/**/*.swift"
s.requires_arc = true
# s.dependency 'Starscream', '~> 0.9' # currently this repo includes Starscream swift files

View File

@ -118,16 +118,18 @@ public class SocketIOClient: NSObject, SocketEngineClient {
}
super.init()
self.engine = SocketEngine(client: self,
forcePolling: self.forcePolling,
withCookies: self.cookies)
}
public convenience init(socketURL:String, options:NSDictionary?) {
self.init(socketURL: socketURL, opts: options)
}
private func addEngine() {
self.engine = SocketEngine(client: self,
forcePolling: self.forcePolling,
withCookies: self.cookies)
}
/**
Closes the socket. Only reopen the same socket if you know what you're doing.
Will turn off automatic reconnects.
@ -150,6 +152,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
self._closed = false
}
self.addEngine()
self.engine?.open()
}
@ -165,6 +168,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
self.params = params
self.paramConnect = true
self.addEngine()
self.engine?.open(opts: params)
}
@ -200,13 +204,13 @@ public class SocketIOClient: NSObject, SocketEngineClient {
/**
Send a message to the server
*/
public func emit(event:String, _ args:AnyObject...) {
public func emit(event:String, _ items:AnyObject...) {
if !self.connected {
return
}
dispatch_async(self.emitQueue) {[weak self] in
self?._emit(event, args)
self?._emit(event, items)
return
}
}
@ -215,14 +219,21 @@ public class SocketIOClient: NSObject, SocketEngineClient {
Same as emit, but meant for Objective-C
*/
public func emitObjc(event:String, withItems items:[AnyObject]) {
self.emit(event, items)
if !self.connected {
return
}
dispatch_async(self.emitQueue) {[weak self] in
self?._emit(event, items)
return
}
}
/**
Sends a message to the server, requesting an ack. Use the onAck method of SocketAckHandler to add
an ack.
*/
public func emitWithAck(event:String, _ args:AnyObject...) -> SocketAckHandler {
public func emitWithAck(event:String, _ items:AnyObject...) -> SocketAckHandler {
if !self.connected {
return SocketAckHandler(event: "fail", socket: self)
}
@ -233,7 +244,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
self.ackHandlers.append(ackHandler)
dispatch_async(self.emitQueue) {[weak self, ack = self.currentAck] in
self?._emit(event, args, ack: ack)
self?._emit(event, items, ack: ack)
return
}
@ -244,7 +255,21 @@ public class SocketIOClient: NSObject, SocketEngineClient {
Same as emitWithAck, but for Objective-C
*/
public func emitWithAckObjc(event:String, withItems items:[AnyObject]) -> SocketAckHandler {
return self.emitWithAck(event, items)
if !self.connected {
return SocketAckHandler(event: "fail", socket: self)
}
self.currentAck++
let ackHandler = SocketAckHandler(event: event,
ackNum: self.currentAck, socket: self)
self.ackHandlers.append(ackHandler)
dispatch_async(self.emitQueue) {[weak self, ack = self.currentAck] in
self?._emit(event, items, ack: ack)
return
}
return ackHandler
}
private func _emit(event:String, _ args:[AnyObject], ack:Int? = nil) {