@@ -220,39 +220,20 @@ class SocketParser {
220220 return
221221 }
222222
223- var messageGroups : [ String ] ?
224-
225223 let type = stringMessage. removeAtIndex ( stringMessage. startIndex)
226224
227225 if type == " 2 " {
228- if let groups = stringMessage [ " ( \\ d*) \\ /? (\\ w*)?,?( \\ d*)? \\ [ \" (.*?) \" ,?(.*?)? \\ ]$ " ,
226+ if let groups = stringMessage [ " ( \\ / (\\ w*) )?,?( \\ d*)? \\ [ \" (.*?) \" ,?(.*?)? \\ ]$ " ,
229227 NSRegularExpressionOptions . DotMatchesLineSeparators] . groups ( ) {
230- messageGroups = groups
231-
232- var mesNum = messageGroups![ 1 ]
233- var ackNum : String
234- var namespace : String ?
235-
236- if mesNum == " " {
237- ackNum = " "
238- } else if messageGroups![ 3 ] != " " {
239- ackNum = messageGroups![ 3 ]
240- } else {
241- let range = Range < String . Index > ( start: mesNum. startIndex,
242- end: advance ( mesNum. startIndex, 1 ) )
243- mesNum. replaceRange ( range, with: " " )
244- ackNum = mesNum
245- }
246-
247- namespace = messageGroups![ 2 ]
228+ let namespace = groups [ 2 ]
229+ let ackNum = groups [ 3 ]
230+ let event = groups [ 4 ]
231+ let data = " [ \( groups [ 5 ] ) ] "
248232
249233 if namespace == " " && socket. nsp != nil {
250234 return
251235 }
252236
253- let event = messageGroups![ 4 ]
254- let data = " [ \( messageGroups![ 5 ] ) ] "
255-
256237 if let parsed: AnyObject = self . parseData ( data) {
257238 if ackNum == " " {
258239 socket. handleEvent ( event, data: parsed)
@@ -264,25 +245,16 @@ class SocketParser {
264245 }
265246 }
266247 } else if type == " 3 " {
267- if let ackGroup = stringMessage [ " ( \\ d*) \\ /? (\\ w*)?,?( \\ d*)? \\ [(.*?)? \\ ]$ " ,
248+ if let ackGroup = stringMessage [ " ( \\ / (\\ w*) )?,?( \\ d*)? \\ [(.*?)? \\ ]$ " ,
268249 NSRegularExpressionOptions . DotMatchesLineSeparators] . groups ( ) {
269- messageGroups = ackGroup
270-
271- let arr = Array ( messageGroups![ 1 ] )
272- var ackNum : String
273- let nsp = messageGroups![ 2 ]
250+ let nsp = ackGroup [ 2 ]
251+ let ackNum = ackGroup [ 3 ]
252+ let ackData : AnyObject ? = self . parseData ( " [ \( ackGroup [ 4 ] ) ] " )
274253
275254 if nsp == " " && socket. nsp != nil {
276255 return
277256 }
278257
279- if nsp == " " {
280- ackNum = String ( arr [ 0 ... arr. count- 1 ] )
281- } else {
282- ackNum = messageGroups![ 3 ]
283- }
284-
285- let ackData : AnyObject ? = self . parseData ( " [ \( messageGroups![ 4 ] ) ] " )
286258 socket. handleAck ( ackNum. toInt ( ) !, data: ackData)
287259 }
288260 } else {
@@ -346,32 +318,17 @@ class SocketParser {
346318 // Tries to parse a message that contains binary
347319 class func parseBinaryMessage( var message: String , socket: SocketIOClient ) {
348320 // NSLog(message)
349- var binaryGroup : [ String ] ?
350321
351322 let type = message. removeAtIndex ( message. startIndex)
352323
353324 if type == " 5 " {
354- if let groups = message [ " ^( \\ d*)- \\ /? ( \\ w*)?,?( \\ d*)? \\ [( \" .*? \" )? ,?(.*)?\\ ]$ " ,
325+ if let groups = message [ " ^( \\ d*)-( \\ /( \\ w*)) ?,?( \\ d*)? \\ [ \" ( .*?) \" ,?(.*)? \\ ]$ " ,
355326 NSRegularExpressionOptions . DotMatchesLineSeparators] . groups ( ) {
356- binaryGroup = groups
357-
358- var ackNum : String
359- var event : String
360- var mutMessageObject : String
361- var namespace : String ?
362- let numberOfPlaceholders = binaryGroup![ 1 ]
363-
364- namespace = binaryGroup![ 2 ]
365- if binaryGroup![ 3 ] != " " {
366- ackNum = binaryGroup![ 3 ] as String
367- } else if socket. nsp == nil && binaryGroup![ 2 ] != " " {
368- ackNum = binaryGroup![ 2 ]
369- } else {
370- ackNum = " "
371- }
372-
373- event = ( binaryGroup![ 4 ] [ " \" " ] ~= " " ) as String
374- mutMessageObject = binaryGroup![ 5 ]
327+ let numberOfPlaceholders = groups [ 1 ]
328+ let namespace = groups [ 3 ]
329+ let ackNum = groups [ 4 ]
330+ let event = groups [ 5 ]
331+ let mutMessageObject = groups [ 6 ]
375332
376333 if namespace == " " && socket. nsp != nil {
377334 return
@@ -393,26 +350,16 @@ class SocketParser {
393350 socket. waitingData. append ( mes)
394351 }
395352 } else if type == " 6 " {
396- if let groups = message [ " ^( \\ d*)- \\ /? ( \\ w*)?,?( \\ d*)? \\ [(.*?)? \\ ]$ " ,
353+ if let groups = message [ " ^( \\ d*)-( \\ /( \\ w*) )?,?( \\ d*)? \\ [(.*?)? \\ ]$ " ,
397354 NSRegularExpressionOptions . DotMatchesLineSeparators] . groups ( ) {
398- binaryGroup = groups
399-
400- let numberOfPlaceholders = binaryGroup![ 1 ]
401- var ackNum : String
402- var nsp : String
355+ let numberOfPlaceholders = groups [ 1 ]
356+ let namespace = groups [ 3 ]
357+ let ackNum = groups [ 4 ]
358+ let mutMessageObject = groups [ 5 ]
403359
404- if binaryGroup![ 3 ] == " " {
405- ackNum = binaryGroup![ 2 ]
406- nsp = " "
407- } else {
408- ackNum = binaryGroup![ 3 ]
409- nsp = binaryGroup![ 2 ]
410- }
411-
412- if nsp == " " && socket. nsp != nil {
360+ if namespace == " " && socket. nsp != nil {
413361 return
414362 }
415- var mutMessageObject = binaryGroup![ 4 ]
416363 let placeholdersRemoved = mutMessageObject [ " ( \\ { \" _placeholder \" :true, \" num \" :( \\ d*) \\ }) " ]
417364 ~= " \" ~~$2 \" "
418365
0 commit comments