Skip to content

Commit f008f11

Browse files
committed
fix #27
1 parent 9512c8b commit f008f11

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ Methods
4747
-------
4848
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.
4949
2. `socket.onAny(callback:((event:String, items:AnyObject?)) -> Void)` - Adds a handler for all events. It will be called on any received event.
50-
3. `socket.emit(event:String, _ args:AnyObject...)` - Sends a message. Can send multiple args.
50+
3. `socket.emit(event:String, _ items:AnyObject...)` - Sends a message. Can send multiple items.
5151
4. `socket.emitObjc(event:String, withItems items:[AnyObject])` - `emit` for Objective-C
52-
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.
52+
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.
5353
6. `socket.emitWithAckObjc(event:String, withItems items:[AnyObject]) -> SocketAckHandler` - `emitWithAck` for Objective-C.
5454
7. `socket.connect()` - Establishes a connection to the server. A "connect" event is fired upon successful connection.
5555
8. `socket.connectWithParams(params:[String: AnyObject])` - Establishes a connection to the server passing the specified params. A "connect" event is fired upon successful connection.

SwiftIO/SocketIOClient.swift

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -200,13 +200,13 @@ public class SocketIOClient: NSObject, SocketEngineClient {
200200
/**
201201
Send a message to the server
202202
*/
203-
public func emit(event:String, _ args:AnyObject...) {
203+
public func emit(event:String, _ items:AnyObject...) {
204204
if !self.connected {
205205
return
206206
}
207207

208208
dispatch_async(self.emitQueue) {[weak self] in
209-
self?._emit(event, args)
209+
self?._emit(event, items)
210210
return
211211
}
212212
}
@@ -215,14 +215,21 @@ public class SocketIOClient: NSObject, SocketEngineClient {
215215
Same as emit, but meant for Objective-C
216216
*/
217217
public func emitObjc(event:String, withItems items:[AnyObject]) {
218-
self.emit(event, items)
218+
if !self.connected {
219+
return
220+
}
221+
222+
dispatch_async(self.emitQueue) {[weak self] in
223+
self?._emit(event, items)
224+
return
225+
}
219226
}
220227

221228
/**
222229
Sends a message to the server, requesting an ack. Use the onAck method of SocketAckHandler to add
223230
an ack.
224231
*/
225-
public func emitWithAck(event:String, _ args:AnyObject...) -> SocketAckHandler {
232+
public func emitWithAck(event:String, _ items:AnyObject...) -> SocketAckHandler {
226233
if !self.connected {
227234
return SocketAckHandler(event: "fail", socket: self)
228235
}
@@ -233,7 +240,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
233240
self.ackHandlers.append(ackHandler)
234241

235242
dispatch_async(self.emitQueue) {[weak self, ack = self.currentAck] in
236-
self?._emit(event, args, ack: ack)
243+
self?._emit(event, items, ack: ack)
237244
return
238245
}
239246

@@ -244,7 +251,21 @@ public class SocketIOClient: NSObject, SocketEngineClient {
244251
Same as emitWithAck, but for Objective-C
245252
*/
246253
public func emitWithAckObjc(event:String, withItems items:[AnyObject]) -> SocketAckHandler {
247-
return self.emitWithAck(event, items)
254+
if !self.connected {
255+
return SocketAckHandler(event: "fail", socket: self)
256+
}
257+
258+
self.currentAck++
259+
let ackHandler = SocketAckHandler(event: event,
260+
ackNum: self.currentAck, socket: self)
261+
self.ackHandlers.append(ackHandler)
262+
263+
dispatch_async(self.emitQueue) {[weak self, ack = self.currentAck] in
264+
self?._emit(event, items, ack: ack)
265+
return
266+
}
267+
268+
return ackHandler
248269
}
249270

250271
private func _emit(event:String, _ args:[AnyObject], ack:Int? = nil) {

0 commit comments

Comments
 (0)