@@ -185,7 +185,7 @@ class SocketParser {
185
185
}
186
186
187
187
// Parses messages recieved
188
- class func parseSocketMessage( stringMessage: String , socket: SocketIOClient ) {
188
+ class func parseSocketMessage( var stringMessage: String , socket: SocketIOClient ) {
189
189
if stringMessage == " " {
190
190
return
191
191
}
@@ -225,70 +225,74 @@ class SocketParser {
225
225
**/
226
226
var messageGroups : [ String ] ?
227
227
228
- if let groups = stringMessage [ " ( \\ d*) \\ /?( \\ w*)?,?( \\ d*)? \\ [ \" (.*?) \" ,?(.*?)? \\ ]$ " ,
229
- NSRegularExpressionOptions . DotMatchesLineSeparators] . groups ( ) {
230
- messageGroups = groups
231
- } else if let ackGroup = stringMessage [ " ( \\ d*) \\ /?( \\ w*)?,?( \\ d*)? \\ [(.*?)? \\ ]$ " ,
232
- NSRegularExpressionOptions . DotMatchesLineSeparators] . groups ( ) {
233
- messageGroups = ackGroup
234
- } else {
235
- NSLog ( " Error parsing message: %s " , stringMessage)
236
- return
237
- }
228
+ let type = stringMessage. removeAtIndex ( stringMessage. startIndex)
238
229
239
- if messageGroups! [ 1 ] . hasPrefix ( " 2 " ) {
240
- var mesNum = messageGroups! [ 1 ]
241
- var ackNum : String
242
- var namespace : String ?
243
-
244
- if messageGroups![ 3 ] != " " {
245
- ackNum = messageGroups! [ 3 ]
246
- } else {
247
- let range = Range < String . Index > ( start : mesNum . startIndex ,
248
- end : advance ( mesNum. startIndex , 1 ) )
249
- mesNum . replaceRange ( range , with : " " )
250
- ackNum = mesNum
251
- }
252
-
253
- namespace = messageGroups! [ 2 ]
254
-
255
- if namespace == " " && socket . nsp != nil {
256
- return
257
- }
258
-
259
- let event = messageGroups![ 4 ]
260
- let data = " [ \( messageGroups! [ 5 ] ) ] "
261
-
262
- if let parsed : AnyObject = self . parseData ( data ) {
263
- if ackNum == " " {
264
- socket . handleEvent ( event , data : parsed )
265
- } else {
266
- socket . currentAck = ackNum . toInt ( ) !
267
- socket . handleEvent ( event , data : parsed , isInternalMessage : false ,
268
- wantsAck : ackNum . toInt ( ) , withAckType : 3 )
269
- }
270
-
271
- return
272
- }
273
- } else if messageGroups! [ 1 ] . hasPrefix ( " 3 " ) {
274
- let arr = Array ( messageGroups! [ 1 ] )
275
- var ackNum : String
276
- let nsp = messageGroups! [ 2 ]
277
-
278
- if nsp == " " && socket . nsp != nil {
279
- return
230
+ if type == " 2 " {
231
+ if let groups = stringMessage [ " ( \\ d*) \\ /?( \\ w*)?,?( \\ d*)? \\ [ \" (.*?) \" ,?(.*?)? \\ ]$ " ,
232
+ NSRegularExpressionOptions . DotMatchesLineSeparators ] . groups ( ) {
233
+ messageGroups = groups
234
+
235
+ var mesNum = messageGroups![ 1 ]
236
+ var ackNum : String
237
+ var namespace : String ?
238
+
239
+ if mesNum == " " {
240
+ ackNum = " "
241
+ } else if messageGroups! [ 3 ] != " " {
242
+ ackNum = messageGroups! [ 3 ]
243
+ } else {
244
+ let range = Range < String . Index > ( start : mesNum . startIndex ,
245
+ end : advance ( mesNum . startIndex , 1 ) )
246
+ mesNum . replaceRange ( range , with : " " )
247
+ ackNum = mesNum
248
+ }
249
+
250
+ namespace = messageGroups![ 2 ]
251
+
252
+ if namespace == " " && socket . nsp != nil {
253
+ return
254
+ }
255
+
256
+ let event = messageGroups! [ 4 ]
257
+ let data = " [ \( messageGroups! [ 5 ] ) ] "
258
+
259
+ if let parsed : AnyObject = self . parseData ( data ) {
260
+ if ackNum == " " {
261
+ socket . handleEvent ( event , data : parsed )
262
+ } else {
263
+ socket . currentAck = ackNum . toInt ( ) !
264
+ socket . handleEvent ( event , data : parsed , isInternalMessage : false ,
265
+ wantsAck : ackNum . toInt ( ) , withAckType : 3 )
266
+ }
267
+
268
+ return
269
+ }
270
+
280
271
}
281
-
282
- if nsp == " " {
283
- ackNum = String ( arr [ 1 ... arr. count- 1 ] )
284
- } else {
285
- ackNum = messageGroups![ 3 ]
272
+ } else if type == " 3 " {
273
+ if let ackGroup = stringMessage [ " ( \\ d*) \\ /?( \\ w*)?,?( \\ d*)? \\ [(.*?)? \\ ]$ " ,
274
+ NSRegularExpressionOptions . DotMatchesLineSeparators] . groups ( ) {
275
+ messageGroups = ackGroup
276
+
277
+ let arr = Array ( messageGroups![ 1 ] )
278
+ var ackNum : String
279
+ let nsp = messageGroups![ 2 ]
280
+
281
+ if nsp == " " && socket. nsp != nil {
282
+ return
283
+ }
284
+
285
+ if nsp == " " {
286
+ ackNum = String ( arr [ 0 ... arr. count- 1 ] )
287
+ } else {
288
+ ackNum = messageGroups![ 3 ]
289
+ }
290
+
291
+ let ackData : AnyObject ? = self . parseData ( " [ \( messageGroups![ 4 ] ) ] " )
292
+ socket. handleAck ( ackNum. toInt ( ) !, data: ackData)
293
+
294
+ return
286
295
}
287
-
288
- let ackData : AnyObject ? = self . parseData ( messageGroups![ 4 ] )
289
- socket. handleAck ( ackNum. toInt ( ) !, data: ackData)
290
-
291
- return
292
296
}
293
297
/**
294
298
End Check for message
0 commit comments