@@ -99,6 +99,19 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
99
99
deinit {
100
100
Logger . log ( " Engine is being deinit " , type: logType)
101
101
}
102
+
103
+ private func checkIfMessageIsBase64 Binary( var message: String) {
104
+ if message. hasPrefix ( " b4 " ) {
105
+ // binary in base64 string
106
+ message. removeRange ( Range < String . Index > ( start: message. startIndex,
107
+ end: message. startIndex. advancedBy ( 2 ) ) )
108
+
109
+ if let data = NSData ( base64EncodedString: message,
110
+ options: NSDataBase64DecodingOptions . IgnoreUnknownCharacters) {
111
+ client? . parseBinaryData ( data)
112
+ }
113
+ }
114
+ }
102
115
103
116
public func close( fast fast: Bool) {
104
117
Logger . log ( " Engine is being closed. Fast: %@ " , type: logType, args: fast)
@@ -364,19 +377,6 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
364
377
}
365
378
}
366
379
367
- private func checkIfMessageIsBase64 Binary( var message: String) {
368
- if message. hasPrefix ( " b4 " ) {
369
- // binary in base64 string
370
- message. removeRange ( Range < String . Index > ( start: message. startIndex,
371
- end: message. startIndex. advancedBy ( 2 ) ) )
372
-
373
- if let data = NSData ( base64EncodedString: message,
374
- options: NSDataBase64DecodingOptions . IgnoreUnknownCharacters) {
375
- client? . parseBinaryData ( data)
376
- }
377
- }
378
- }
379
-
380
380
private func handleMessage( message: String) {
381
381
client? . parseSocketMessage ( message)
382
382
}
@@ -492,11 +492,17 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
492
492
var reader = SocketStringReader ( message: str)
493
493
494
494
while reader. hasNext {
495
- let n = reader. readUntilStringOccurence ( " : " )
496
- let str = reader. read ( Int ( n) !)
497
-
498
- dispatch_async ( handleQueue) {
499
- self . parseEngineMessage ( str, fromPolling: true )
495
+ if let n = Int ( reader. readUntilStringOccurence ( " : " ) ) {
496
+ let str = reader. read ( n)
497
+
498
+ dispatch_async ( handleQueue) {
499
+ self . parseEngineMessage ( str, fromPolling: true )
500
+ }
501
+ } else {
502
+ dispatch_async ( handleQueue) {
503
+ self . parseEngineMessage ( str, fromPolling: true )
504
+ }
505
+ break
500
506
}
501
507
}
502
508
}
0 commit comments