Skip to content

Commit 5b180a0

Browse files
committed
fix #20, change objc api
1 parent 0ca13c5 commit 5b180a0

File tree

4 files changed

+26
-20
lines changed

4 files changed

+26
-20
lines changed

README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ 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.
51-
4. `socket.emitObjc(event:String, args:[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.
53-
6. `socket.emitWithAckObjc(event:String, _ args:[AnyObject]) -> SocketAckHandler` - `emitWithAck` for Objective-C.
50+
3. `socket.emit(event:String, _ args:AnyObject...)` - Sends a message. Can send multiple args.
51+
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.
53+
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.
5656
9. `socket.close()` - Closes the socket. Once a socket is closed it should not be reopened.
@@ -131,8 +131,8 @@ SocketIOClient* socket = [[SocketIOClient alloc] initWithSocketURL:@"localhost:8
131131

132132
[socket on: @"connect" callback: ^(NSArray* data, void (^ack)(NSArray*)) {
133133
NSLog(@"connected");
134-
[socket emitObjc:@"echo" :@[@"echo test"]];
135-
[[socket emitWithAckObjc:@"ackack" :@[@"test"]] onAck:0 withCallback:^(NSArray* data) {
134+
[socket emitObjc:@"echo" withItems:@[@"echo test"]];
135+
[[socket emitWithAckObjc:@"ackack" withItems:@[@"test"]] onAck:0 withCallback:^(NSArray* data) {
136136
NSLog(@"Got data");
137137
}];
138138
}];

SwiftIO/SocketEngine.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
109109
}
110110
}
111111

112-
private func createURLs(params:[String: AnyObject]? = nil) -> (String, String) {
112+
private func createURLs(params:[String: AnyObject]?) -> (String, String) {
113113
var url = "\(self.client.socketURL)/socket.io/?transport="
114114
var urlPolling:String
115115
var urlWebSocket:String
@@ -287,7 +287,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
287287
assert(false, "We're in a bad state, this shouldn't happen.")
288288
}
289289

290-
let (urlPolling, urlWebSocket) = self.createURLs(params: opts)
290+
let (urlPolling, urlWebSocket) = self.createURLs(opts)
291291
self.urlPolling = urlPolling
292292
self.urlWebSocket = urlWebSocket
293293
let reqPolling = NSMutableURLRequest(URL: NSURL(string: urlPolling + "&b64=1")!)

SwiftIO/SocketIOClient.swift

+15-12
Original file line numberDiff line numberDiff line change
@@ -175,13 +175,13 @@ public class SocketIOClient: NSObject {
175175
}
176176

177177
// Server wants us to die
178-
func didForceClose() {
178+
func didForceClose(#message:String) {
179179
self._closed = true
180180
self._connected = false
181181
self.reconnects = false
182182
self._connecting = false
183183
self._reconnecting = false
184-
self.handleEvent("disconnect", data: "closed", isInternalMessage: true)
184+
self.handleEvent("disconnect", data: message, isInternalMessage: true)
185185
}
186186

187187
// Sends a message with multiple args
@@ -199,8 +199,8 @@ public class SocketIOClient: NSObject {
199199
}
200200

201201
// Objc doesn't have variadics
202-
public func emitObjc(event:String, _ args:[AnyObject]) {
203-
self.emit(event, args)
202+
public func emitObjc(event:String, withItems items:[AnyObject]) {
203+
self.emit(event, items)
204204
}
205205

206206
public func emitWithAck(event:String, _ args:AnyObject...) -> SocketAckHandler {
@@ -221,8 +221,8 @@ public class SocketIOClient: NSObject {
221221
return ackHandler
222222
}
223223

224-
public func emitWithAckObjc(event:String, _ args:[AnyObject]) -> SocketAckHandler {
225-
return self.emitWithAck(event, args)
224+
public func emitWithAckObjc(event:String, withItems items:[AnyObject]) -> SocketAckHandler {
225+
return self.emitWithAck(event, items)
226226
}
227227

228228
private func _emit(event:String, _ args:[AnyObject], ack:Int? = nil) {
@@ -319,10 +319,13 @@ public class SocketIOClient: NSObject {
319319
return
320320
}
321321

322-
dispatch_async(dispatch_get_main_queue()) {[weak self] in
323-
self?.anyHandler?((event, data))
324-
return
322+
if self.anyHandler != nil {
323+
dispatch_async(dispatch_get_main_queue()) {[weak self] in
324+
self?.anyHandler?((event, data))
325+
return
326+
}
325327
}
328+
326329
for handler in self.handlers {
327330
if handler.event == event {
328331
if data is NSArray {
@@ -400,7 +403,7 @@ public class SocketIOClient: NSObject {
400403
// We lost connection and should attempt to reestablish
401404
func tryReconnect() {
402405
if self.reconnectAttempts != -1 && self.currentReconnectAttempt + 1 > self.reconnectAttempts {
403-
self.didForceClose()
406+
self.didForceClose(message: "Reconnect Failed")
404407
return
405408
} else if self.connected {
406409
self._connecting = false
@@ -438,7 +441,7 @@ public class SocketIOClient: NSObject {
438441
self._connected = false
439442
self._connecting = false
440443
if self.closed || !self.reconnects {
441-
self.didForceClose()
444+
self.didForceClose(message: "WebSocket closed")
442445
} else {
443446
self.handleEvent("reconnect", data: reason, isInternalMessage: true)
444447
self.tryReconnect()
@@ -451,7 +454,7 @@ public class SocketIOClient: NSObject {
451454
self._connecting = false
452455
self.handleEvent("error", data: error.localizedDescription, isInternalMessage: true)
453456
if self.closed || !self.reconnects {
454-
self.didForceClose()
457+
self.didForceClose(message: "WebSocket closed with an error \(error)")
455458
} else if !self.reconnecting {
456459
self.handleEvent("reconnect", data: error.localizedDescription, isInternalMessage: true)
457460
self.tryReconnect()

SwiftIO/SocketParser.swift

+3
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,9 @@ class SocketParser {
209209
socket.didConnect()
210210
return
211211
}
212+
} else if stringMessage == "1" {
213+
socket.didForceClose(message: "Got disconnect")
214+
return
212215
}
213216

214217
if stringMessage.hasPrefix("5") || stringMessage.hasPrefix("6") {

0 commit comments

Comments
 (0)