@@ -280,18 +280,40 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
280
280
}
281
281
282
282
private func createWebSocketAndConnect( ) {
283
- ws? . delegate = nil // TODO this seems a bit defensive, is this really needed?
284
283
var req = URLRequest ( url: urlWebSocketWithSid)
285
284
286
285
addHeaders ( to: & req)
287
286
288
287
ws = WebSocket ( request: req)
289
288
ws? . callbackQueue = engineQueue
290
289
ws? . enableCompression = compress
291
- ws? . delegate = self
292
290
ws? . disableSSLCertValidation = selfSigned
293
291
ws? . security = security? . security
294
292
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
+
295
317
ws? . connect ( )
296
318
}
297
319
@@ -607,10 +629,9 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
607
629
}
608
630
}
609
631
610
- // MARK: Starscream delegate conformance
632
+ // MARK: WebSocket Methods
611
633
612
- /// Delegate method for connection.
613
- public func websocketDidConnect( socket: WebSocketClient ) {
634
+ private func websocketDidConnect( ) {
614
635
if !forceWebsockets {
615
636
probing = true
616
637
probeWebSocket ( )
@@ -621,8 +642,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
621
642
}
622
643
}
623
644
624
- /// Delegate method for disconnection.
625
- public func websocketDidDisconnect( socket: WebSocketClient , error: Error ? ) {
645
+ private func websocketDidDisconnect( error: Error ? ) {
626
646
probing = false
627
647
628
648
if closed {
0 commit comments