simplify socketengine
This commit is contained in:
parent
80cfe8c534
commit
a634f5bacc
@ -69,11 +69,11 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
var urlWebSocket: String?
|
||||
var ws: WebSocket?
|
||||
|
||||
public enum PacketType: Int {
|
||||
@objc public enum PacketType: Int {
|
||||
case Open, Close, Ping, Pong, Message, Upgrade, Noop
|
||||
|
||||
init?(str: String?) {
|
||||
if let value = Int(str ?? ""), raw = PacketType(rawValue: value) {
|
||||
init?(str: String) {
|
||||
if let value = Int(str), raw = PacketType(rawValue: value) {
|
||||
self = raw
|
||||
} else {
|
||||
return nil
|
||||
@ -547,7 +547,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
fixDoubleUTF8(&message)
|
||||
}
|
||||
|
||||
let type = PacketType(str: (message["^(\\d)"].groups()?[1])) ?? {
|
||||
let type = PacketType(str: (message["^(\\d)"].groups()?[1]) ?? "") ?? {
|
||||
self.checkIfMessageIsBase64Binary(message)
|
||||
return PacketType.Noop
|
||||
}()
|
||||
@ -687,23 +687,6 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Write a message, independent of transport. For Objective-C. withData should be an NSArray of NSData
|
||||
*/
|
||||
public func writeObjc(msg: String, withType type: Int, withData data: NSArray?) {
|
||||
if let pType = PacketType(rawValue: type) {
|
||||
var arr = [NSData]()
|
||||
|
||||
if let data = data {
|
||||
for d in data {
|
||||
arr.append(d as! NSData)
|
||||
}
|
||||
}
|
||||
|
||||
write(msg, withType: pType, withData: arr)
|
||||
}
|
||||
}
|
||||
|
||||
// Delagate methods
|
||||
|
||||
public func websocketDidConnect(socket:WebSocket) {
|
||||
|
||||
@ -36,9 +36,11 @@ struct SocketGenericParser {
|
||||
let range = Range<String.Index>(start: startIndex, end: message.endIndex)
|
||||
let subString = message.substringWithRange(range) as NSString
|
||||
let foundRange = subString.rangeOfString(string)
|
||||
|
||||
if foundRange.location == Int.max {
|
||||
return nil
|
||||
}
|
||||
|
||||
currentIndex = currentIndex + foundRange.location
|
||||
|
||||
return subString.substringToIndex(foundRange.location)
|
||||
|
||||
@ -30,6 +30,7 @@ class SocketParser {
|
||||
|
||||
private static func handleEvent(p: SocketPacket, socket: SocketIOClient) {
|
||||
guard isCorrectNamespace(p.nsp, socket) else { return }
|
||||
|
||||
socket.handleEvent(p.event, data: p.args,
|
||||
isInternalMessage: false, wantsAck: p.id)
|
||||
}
|
||||
@ -59,10 +60,9 @@ class SocketParser {
|
||||
// Translation of socket.io-client#decodeString
|
||||
static func parseString(message: String) -> SocketPacket? {
|
||||
var parser = SocketGenericParser(message: message, currentIndex: 0)
|
||||
guard let typeString = parser.read(1),
|
||||
let type = SocketPacket.PacketType(str: typeString) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
guard let typeString = parser.read(1), type = SocketPacket.PacketType(str: typeString)
|
||||
else {return nil}
|
||||
|
||||
if parser.messageCharacters.count == 1 {
|
||||
return SocketPacket(type: type, nsp: "/")
|
||||
@ -129,6 +129,7 @@ class SocketParser {
|
||||
Logger.error("Parsing message", type: "SocketParser", args: message)
|
||||
return
|
||||
}
|
||||
|
||||
Logger.log("Decoded packet as: %@", type: "SocketParser", args: pack.description)
|
||||
|
||||
switch pack.type {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user