2424
2525import Foundation
2626
27- class SocketIOClient {
27+ public class SocketIOClient : NSObject {
2828 let socketURL : NSMutableString !
2929 let ackQueue = dispatch_queue_create ( " ackQueue " . cStringUsingEncoding ( NSUTF8StringEncoding) ,
3030 DISPATCH_QUEUE_SERIAL)
@@ -57,7 +57,7 @@ class SocketIOClient {
5757 }
5858 var sid : String ?
5959
60- init ( socketURL: String , opts: [ String : AnyObject ] ? = nil ) {
60+ public init ( socketURL: String , opts: [ String : AnyObject ] ? = nil ) {
6161 var mutURL = RegexMutable ( socketURL)
6262
6363 if mutURL [ " https:// " ] . matches ( ) . count != 0 {
@@ -96,11 +96,13 @@ class SocketIOClient {
9696 self . reconnectAttempts = - 1
9797 }
9898
99+ super. init ( )
100+
99101 self . engine = SocketEngine ( client: self , forcePolling: self . forcePolling)
100102 }
101103
102104 // Closes the socket
103- func close( ) {
105+ public func close( ) {
104106 self . closed = true
105107 self . connecting = false
106108 self . connected = false
@@ -109,7 +111,7 @@ class SocketIOClient {
109111 }
110112
111113 // Connects to the server
112- func connect( ) {
114+ public func connect( ) {
113115 if self . closed {
114116 println ( " Warning! This socket was previously closed. This might be dangerous! " )
115117 self . closed = false
@@ -119,7 +121,7 @@ class SocketIOClient {
119121 }
120122
121123 // Connect to the server using params
122- func connectWithParams( params: [ String : AnyObject ] ) {
124+ public func connectWithParams( params: [ String : AnyObject ] ) {
123125 if self . closed {
124126 println ( " Warning! This socket was previously closed. This might be dangerous! " )
125127 self . closed = false
@@ -139,6 +141,7 @@ class SocketIOClient {
139141 self . currentReconnectAttempt = 0
140142 self . reconnectTimer? . invalidate ( )
141143 self . reconnectTimer = nil
144+
142145 self . handleEvent ( " connect " , data: nil , isInternalMessage: false )
143146 }
144147
@@ -155,7 +158,7 @@ class SocketIOClient {
155158 // Sends a message with multiple args
156159 // If a message contains binary we have to send those
157160 // seperately.
158- func emit( event: String , _ args: AnyObject ... ) {
161+ public func emit( event: String , _ args: AnyObject ... ) {
159162 if !self . connected {
160163 return
161164 }
@@ -166,7 +169,12 @@ class SocketIOClient {
166169 }
167170 }
168171
169- func emitWithAck( event: String , _ args: AnyObject ... ) -> SocketAckHandler {
172+ // Objc doesn't have variadics
173+ public func emitObjc( event: String , _ args: [ AnyObject ] ) {
174+ self . emit ( event, args)
175+ }
176+
177+ public func emitWithAck( event: String , _ args: AnyObject ... ) -> SocketAckHandler {
170178 if !self . connected {
171179 return SocketAckHandler ( event: " fail " )
172180 }
@@ -183,6 +191,10 @@ class SocketIOClient {
183191 return ackHandler
184192 }
185193
194+ public func emitWithAckObjc( event: String , _ args: [ AnyObject ] ) -> SocketAckHandler {
195+ return self . emitWithAck ( event, args)
196+ }
197+
186198 private func _emit( event: String , _ args: [ AnyObject ] , ack: Bool = false ) {
187199 var frame : SocketEvent
188200 var str : String
@@ -217,7 +229,7 @@ class SocketIOClient {
217229 }
218230
219231 // If the server wants to know that the client received data
220- func emitAck( ack: Int , withData data: [ AnyObject ] ? , withAckType ackType: Int ) {
232+ internal func emitAck( ack: Int , withData data: [ AnyObject ] ? , withAckType ackType: Int ) {
221233 dispatch_async ( self . ackQueue) { [ weak self] in
222234 if self == nil || !self !. connected || data == nil {
223235 return
@@ -270,7 +282,7 @@ class SocketIOClient {
270282 }
271283
272284 // Handles events
273- func handleEvent( event: String , data: AnyObject ? , isInternalMessage: Bool = false ,
285+ public func handleEvent( event: String , data: AnyObject ? , isInternalMessage: Bool = false ,
274286 wantsAck ack: Int ? = nil , withAckType ackType: Int = 3 ) {
275287 // println("Should do event: \(event) with data: \(data)")
276288 if !self . connected && !isInternalMessage {
@@ -319,18 +331,18 @@ class SocketIOClient {
319331 }
320332
321333 // Adds handler for an event
322- func on( name: String , callback: NormalCallback ) {
334+ public func on( name: String , callback: NormalCallback ) {
323335 let handler = SocketEventHandler ( event: name, callback: callback)
324336 self . handlers. append ( handler)
325337 }
326338
327339 // Adds a handler for any event
328- func onAny( handler: ( AnyHandler ) -> Void ) {
340+ public func onAny( handler: ( AnyHandler ) -> Void ) {
329341 self . anyHandler = handler
330342 }
331343
332344 // Opens the connection to the socket
333- func open( ) {
345+ public func open( ) {
334346 self . connect ( )
335347 }
336348
@@ -497,7 +509,7 @@ class SocketIOClient {
497509 }
498510
499511 // Parses messages recieved
500- func parseSocketMessage( stringMessage: String ) {
512+ internal func parseSocketMessage( stringMessage: String ) {
501513 // println(message!)
502514
503515 // Check for successful namepsace connect
@@ -718,7 +730,7 @@ class SocketIOClient {
718730 }
719731
720732 // Handles binary data
721- func parseBinaryData( data: NSData ) {
733+ internal func parseBinaryData( data: NSData ) {
722734 let shouldExecute = self . waitingData [ 0 ] . addData ( data)
723735
724736 if shouldExecute {
@@ -763,7 +775,7 @@ class SocketIOClient {
763775 }
764776
765777 // Something happened while polling
766- func pollingDidFail( err: NSError ? ) {
778+ internal func pollingDidFail( err: NSError ? ) {
767779 if !self . reconnecting {
768780 self . connected = false
769781 self . handleEvent ( " reconnect " , data: err? . localizedDescription, isInternalMessage: true )
@@ -772,7 +784,7 @@ class SocketIOClient {
772784 }
773785
774786 // We lost connection and should attempt to reestablish
775- @ objc func tryReconnect( ) {
787+ internal func tryReconnect( ) {
776788 if self . reconnectAttempts != - 1 && self . currentReconnectAttempt + 1 > self . reconnectAttempts {
777789 self . didForceClose ( )
778790 return
0 commit comments