Skip to content

Commit

Permalink
fix #26
Browse files Browse the repository at this point in the history
  • Loading branch information
nuclearace committed Mar 16, 2015
1 parent 44e2781 commit 2712461
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 10 deletions.
4 changes: 2 additions & 2 deletions Socket.IO-Client-Swift.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "Socket.IO-Client-Swift"
s.version = "1.2.0"
s.version = "1.2.1"
s.summary = "Socket.IO-client for Swift"
s.description = <<-DESC
Socket.IO-client for Swift.
Expand All @@ -12,7 +12,7 @@ Pod::Spec.new do |s|
s.author = { "Erik" => "[email protected]" }
s.ios.deployment_target = '8.0'
s.osx.deployment_target = '10.10'
s.source = { :git => "https://github.com/socketio/socket.io-client-swift.git", :tag => 'v1.2.0' }
s.source = { :git => "https://github.com/socketio/socket.io-client-swift.git", :tag => 'v1.2.1' }
s.source_files = "SwiftIO/**/*.swift"
s.requires_arc = true
# s.dependency 'Starscream', '~> 0.9' # currently this repo includes Starscream swift files
Expand Down
34 changes: 26 additions & 8 deletions SwiftIO/SocketParser.swift
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ class SocketParser {
}
}

if stringMessage.hasPrefix("5") {
if stringMessage.hasPrefix("5") || stringMessage.hasPrefix("6") {
// Check for message with binary placeholders
self.parseBinaryMessage(stringMessage, socket: socket)
return
Expand All @@ -220,10 +220,16 @@ class SocketParser {
/**
Begin check for message
**/
let messageGroups = stringMessage["(\\d*)\\/?(\\w*)?,?(\\d*)?\\[\"(.*?)\",?(.*?)?\\]$",
NSRegularExpressionOptions.DotMatchesLineSeparators].groups()
if messageGroups == nil {
NSLog("Error in groups")
var messageGroups:[String]?

if let groups = stringMessage["(\\d*)\\/?(\\w*)?,?(\\d*)?\\[\"(.*?)\",?(.*?)?\\]$",
NSRegularExpressionOptions.DotMatchesLineSeparators].groups() {
messageGroups = groups
} else if let ackGroup = stringMessage["(\\d*)\\/?(\\w*)?,?(\\d*)?\\[(.*?)?\\]$",
NSRegularExpressionOptions.DotMatchesLineSeparators].groups() {
messageGroups = ackGroup
} else {
NSLog("Error parsing message: %s", stringMessage)
return
}

Expand Down Expand Up @@ -289,6 +295,12 @@ class SocketParser {
// Handles binary data
class func parseBinaryData(data:NSData, socket:SocketIOClient) {
// NSLog(data.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.allZeros))

if socket.waitingData.count == 0 {
NSLog("Got data when not remaking packet")
return
}

let shouldExecute = socket.waitingData[0].addData(data)

if shouldExecute {
Expand Down Expand Up @@ -339,10 +351,16 @@ class SocketParser {
/**
Begin check for binary placeholders
**/
let binaryGroup = message["^(\\d*)-\\/?(\\w*)?,?(\\d*)?\\[(\".*?\")?,?(.*)?\\]$",
NSRegularExpressionOptions.DotMatchesLineSeparators].groups()
var binaryGroup:[String]?

if binaryGroup == nil {
if let groups = message["^(\\d*)-\\/?(\\w*)?,?(\\d*)?\\[(\".*?\")?,?(.*)?\\]$",
NSRegularExpressionOptions.DotMatchesLineSeparators].groups() {
binaryGroup = groups
} else if let groups = message["^(\\d*)-\\/?(\\w*)?,?(\\d*)?\\[(.*?)?\\]$",
NSRegularExpressionOptions.DotMatchesLineSeparators].groups() {
binaryGroup = groups
} else {
NSLog("Error in parsing binary message: %s", message)
return
}

Expand Down

1 comment on commit 2712461

@nuclearace
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.