tweaks to string reading
This commit is contained in:
parent
ec76704631
commit
f5f2a15133
@ -72,7 +72,7 @@ class SocketParserTest: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testGenericParser() {
|
func testGenericParser() {
|
||||||
var parser = SocketStringReader(message: "61-/swift,", currentIndex: "61-/swift,".startIndex)
|
var parser = SocketStringReader(message: "61-/swift,")
|
||||||
XCTAssertEqual(parser.read(1), "6")
|
XCTAssertEqual(parser.read(1), "6")
|
||||||
XCTAssertEqual(parser.currentCharacter, "1")
|
XCTAssertEqual(parser.currentCharacter, "1")
|
||||||
XCTAssertEqual(parser.readUntilStringOccurence("-"), "1")
|
XCTAssertEqual(parser.readUntilStringOccurence("-"), "1")
|
||||||
|
|||||||
@ -484,13 +484,12 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
|||||||
doRequest(reqPolling)
|
doRequest(reqPolling)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Translatation of engine.io-parser#decodePayload
|
|
||||||
private func parsePollingMessage(str: String) {
|
private func parsePollingMessage(str: String) {
|
||||||
guard str.characters.count != 1 else {
|
guard str.characters.count != 1 else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var reader = SocketStringReader(message: str, currentIndex: str.startIndex)
|
var reader = SocketStringReader(message: str)
|
||||||
|
|
||||||
while reader.hasNext {
|
while reader.hasNext {
|
||||||
let n = reader.readUntilStringOccurence(":")
|
let n = reader.readUntilStringOccurence(":")
|
||||||
|
|||||||
@ -57,9 +57,8 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Translation of socket.io-client#decodeString
|
|
||||||
static func parseString(message: String) -> SocketPacket? {
|
static func parseString(message: String) -> SocketPacket? {
|
||||||
var parser = SocketStringReader(message: message, currentIndex: message.startIndex)
|
var parser = SocketStringReader(message: message)
|
||||||
|
|
||||||
guard let type = SocketPacket.PacketType(str: parser.read(1))
|
guard let type = SocketPacket.PacketType(str: parser.read(1))
|
||||||
else {return nil}
|
else {return nil}
|
||||||
@ -89,6 +88,7 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var idString = ""
|
var idString = ""
|
||||||
|
|
||||||
while parser.hasNext {
|
while parser.hasNext {
|
||||||
if let int = Int(parser.read(1)) {
|
if let int = Int(parser.read(1)) {
|
||||||
idString += String(int)
|
idString += String(int)
|
||||||
|
|||||||
@ -19,6 +19,11 @@ struct SocketStringReader {
|
|||||||
return String(message[currentIndex])
|
return String(message[currentIndex])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
init(message: String) {
|
||||||
|
self.message = message
|
||||||
|
currentIndex = message.startIndex
|
||||||
|
}
|
||||||
|
|
||||||
mutating func advanceIndexBy(n: Int) {
|
mutating func advanceIndexBy(n: Int) {
|
||||||
currentIndex = currentIndex.advancedBy(n)
|
currentIndex = currentIndex.advancedBy(n)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user