extract methods, clean up
This commit is contained in:
parent
fafeebe185
commit
a15b57e900
@ -395,13 +395,11 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for handler in handlers {
|
for handler in handlers where handler.event == event {
|
||||||
if handler.event == event {
|
if ack != nil {
|
||||||
if ack != nil {
|
handler.executeCallback(data, withAck: ack!, withSocket: self)
|
||||||
handler.executeCallback(data, withAck: ack!, withSocket: self)
|
} else {
|
||||||
} else {
|
handler.executeCallback(data)
|
||||||
handler.executeCallback(data)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,6 +79,54 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static func checkNSP(nsp:String) -> Bool {
|
||||||
|
return nsp == "" && socket.nsp != "/"
|
||||||
|
}
|
||||||
|
|
||||||
|
private static func handleAck(p:SocketPacket, socket:SocketIOClient) {
|
||||||
|
if checkNSP(p.nsp) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
socket.handleAck(p.id!, data: p.data)
|
||||||
|
}
|
||||||
|
|
||||||
|
private static func handleBinaryAck(p:SocketPacket, socket:SocketIOClient) {
|
||||||
|
if checkNSP(p.nsp) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
p.justAck = true
|
||||||
|
socket.waitingData.append(p)
|
||||||
|
}
|
||||||
|
|
||||||
|
private static func handleBinaryEvent(p:SocketPacket, socket:SocketIOClient) {
|
||||||
|
if checkNSP(p.nsp) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
socket.waitingData.append(p)
|
||||||
|
}
|
||||||
|
|
||||||
|
private static func handleConnect(p:SocketPacket, socket:SocketIOClient) {
|
||||||
|
if p.nsp == "" && socket.nsp != "/" {
|
||||||
|
socket.joinNamespace()
|
||||||
|
} else if p.nsp != "" && socket.nsp == "/" {
|
||||||
|
socket.didConnect()
|
||||||
|
} else {
|
||||||
|
socket.didConnect()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static func handleEvent(p:SocketPacket, socket:SocketIOClient) {
|
||||||
|
if checkNSP(p.nsp) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
socket.handleEvent(p.getEvent(), data: p.data,
|
||||||
|
isInternalMessage: false, wantsAck: p.id)
|
||||||
|
}
|
||||||
|
|
||||||
// Translation of socket.io-client#decodeString
|
// Translation of socket.io-client#decodeString
|
||||||
static func parseString(str:String) -> SocketPacket? {
|
static func parseString(str:String) -> SocketPacket? {
|
||||||
let arr = Array(str.characters)
|
let arr = Array(str.characters)
|
||||||
@ -187,10 +235,6 @@ class SocketParser {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkNSP(nsp:String) -> Bool {
|
|
||||||
return nsp == "" && socket.nsp != "/"
|
|
||||||
}
|
|
||||||
|
|
||||||
SocketLogger.log("Parsing %@", client: socket, altType: "SocketParser", args: stringMessage)
|
SocketLogger.log("Parsing %@", client: socket, altType: "SocketParser", args: stringMessage)
|
||||||
|
|
||||||
let p:SocketPacket
|
let p:SocketPacket
|
||||||
@ -204,44 +248,23 @@ class SocketParser {
|
|||||||
|
|
||||||
SocketLogger.log("Decoded packet as: %@", client: socket, altType: "SocketParser", args: p)
|
SocketLogger.log("Decoded packet as: %@", client: socket, altType: "SocketParser", args: p)
|
||||||
|
|
||||||
if p.type == SocketPacket.PacketType.EVENT {
|
switch p.type {
|
||||||
if checkNSP(p.nsp) {
|
case SocketPacket.PacketType.EVENT?:
|
||||||
return
|
handleEvent(p, socket: socket)
|
||||||
}
|
case SocketPacket.PacketType.ACK?:
|
||||||
|
handleAck(p, socket: socket)
|
||||||
socket.handleEvent(p.getEvent(), data: p.data,
|
case SocketPacket.PacketType.BINARY_EVENT?:
|
||||||
isInternalMessage: false, wantsAck: p.id)
|
handleBinaryEvent(p, socket: socket)
|
||||||
} else if p.type == SocketPacket.PacketType.ACK {
|
case SocketPacket.PacketType.BINARY_ACK?:
|
||||||
if checkNSP(p.nsp) {
|
handleBinaryAck(p, socket: socket)
|
||||||
return
|
case SocketPacket.PacketType.CONNECT?:
|
||||||
}
|
handleConnect(p, socket: socket)
|
||||||
|
case SocketPacket.PacketType.DISCONNECT?:
|
||||||
socket.handleAck(p.id!, data: p.data)
|
|
||||||
} else if p.type == SocketPacket.PacketType.BINARY_EVENT {
|
|
||||||
if checkNSP(p.nsp) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
socket.waitingData.append(p)
|
|
||||||
} else if p.type == SocketPacket.PacketType.BINARY_ACK {
|
|
||||||
if checkNSP(p.nsp) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
p.justAck = true
|
|
||||||
socket.waitingData.append(p)
|
|
||||||
} else if p.type == SocketPacket.PacketType.CONNECT {
|
|
||||||
if p.nsp == "" && socket.nsp != "/" {
|
|
||||||
socket.joinNamespace()
|
|
||||||
} else if p.nsp != "" && socket.nsp == "/" {
|
|
||||||
socket.didConnect()
|
|
||||||
} else {
|
|
||||||
socket.didConnect()
|
|
||||||
}
|
|
||||||
} else if p.type == SocketPacket.PacketType.DISCONNECT {
|
|
||||||
socket.didDisconnect("Got Disconnect")
|
socket.didDisconnect("Got Disconnect")
|
||||||
} else if p.type == SocketPacket.PacketType.ERROR {
|
case SocketPacket.PacketType.ERROR?:
|
||||||
socket.didError(p.data == nil ? "Error" : p.data!)
|
socket.didError(p.data == nil ? "Error" : p.data!)
|
||||||
|
case nil:
|
||||||
|
SocketLogger.err("Got packet with invalid packet type", client: socket)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user