@@ -280,18 +280,40 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
280280 }
281281
282282 private func createWebSocketAndConnect( ) {
283- ws? . delegate = nil // TODO this seems a bit defensive, is this really needed?
284283 var req = URLRequest ( url: urlWebSocketWithSid)
285284
286285 addHeaders ( to: & req)
287286
288287 ws = WebSocket ( request: req)
289288 ws? . callbackQueue = engineQueue
290289 ws? . enableCompression = compress
291- ws? . delegate = self
292290 ws? . disableSSLCertValidation = selfSigned
293291 ws? . security = security? . security
294292
293+ ws? . onConnect = { [ weak self] in
294+ guard let this = self else { return }
295+
296+ this. websocketDidConnect ( )
297+ }
298+
299+ ws? . onDisconnect = { [ weak self] error in
300+ guard let this = self else { return }
301+
302+ this. websocketDidDisconnect ( error: error)
303+ }
304+
305+ ws? . onData = { [ weak self] data in
306+ guard let this = self else { return }
307+
308+ this. parseEngineData ( data)
309+ }
310+
311+ ws? . onText = { [ weak self] message in
312+ guard let this = self else { return }
313+
314+ this. parseEngineMessage ( message)
315+ }
316+
295317 ws? . connect ( )
296318 }
297319
@@ -607,10 +629,9 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
607629 }
608630 }
609631
610- // MARK: Starscream delegate conformance
632+ // MARK: WebSocket Methods
611633
612- /// Delegate method for connection.
613- public func websocketDidConnect( socket: WebSocketClient ) {
634+ private func websocketDidConnect( ) {
614635 if !forceWebsockets {
615636 probing = true
616637 probeWebSocket ( )
@@ -621,8 +642,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
621642 }
622643 }
623644
624- /// Delegate method for disconnection.
625- public func websocketDidDisconnect( socket: WebSocketClient , error: Error ? ) {
645+ private func websocketDidDisconnect( error: Error ? ) {
626646 probing = false
627647
628648 if closed {
0 commit comments