clean up namespace logic
This commit is contained in:
parent
24583f19c1
commit
8daa7da426
@ -99,11 +99,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
|
|||||||
self.log = log
|
self.log = log
|
||||||
}
|
}
|
||||||
|
|
||||||
if var nsp = opts?["nsp"] as? String {
|
if let nsp = opts?["nsp"] as? String {
|
||||||
if nsp != "/" && nsp.hasPrefix("/") {
|
|
||||||
nsp.removeAtIndex(nsp.startIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
self.nsp = nsp
|
self.nsp = nsp
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,7 +398,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
|
|||||||
*/
|
*/
|
||||||
public func leaveNamespace() {
|
public func leaveNamespace() {
|
||||||
if nsp != "/" {
|
if nsp != "/" {
|
||||||
engine?.send("1/\(nsp)", withData: nil)
|
engine?.send("1\(nsp)", withData: nil)
|
||||||
nsp = "/"
|
nsp = "/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -414,7 +410,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
|
|||||||
SocketLogger.log("Joining namespace", client: self)
|
SocketLogger.log("Joining namespace", client: self)
|
||||||
|
|
||||||
if nsp != "/" {
|
if nsp != "/" {
|
||||||
engine?.send("0/\(nsp)", withData: nil)
|
engine?.send("0\(nsp)", withData: nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,9 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
struct SocketPacket {
|
struct SocketPacket {
|
||||||
|
let nsp:String
|
||||||
|
let id:Int
|
||||||
|
|
||||||
enum PacketType:Int {
|
enum PacketType:Int {
|
||||||
case CONNECT = 0
|
case CONNECT = 0
|
||||||
case DISCONNECT = 1
|
case DISCONNECT = 1
|
||||||
@ -46,8 +49,6 @@ struct SocketPacket {
|
|||||||
var currentPlace = 0
|
var currentPlace = 0
|
||||||
var binary:[NSData]
|
var binary:[NSData]
|
||||||
var data:[AnyObject]
|
var data:[AnyObject]
|
||||||
var id:Int = -1
|
|
||||||
var nsp = ""
|
|
||||||
var placeholders:Int
|
var placeholders:Int
|
||||||
var type:PacketType
|
var type:PacketType
|
||||||
var description:String {
|
var description:String {
|
||||||
@ -149,7 +150,7 @@ struct SocketPacket {
|
|||||||
if nsp == "/" {
|
if nsp == "/" {
|
||||||
msg = "3\(id)["
|
msg = "3\(id)["
|
||||||
} else {
|
} else {
|
||||||
msg = "3/\(nsp),\(id)["
|
msg = "3\(nsp),\(id)["
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if nsp == "/" {
|
if nsp == "/" {
|
||||||
@ -175,9 +176,9 @@ struct SocketPacket {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if id == -1 {
|
if id == -1 {
|
||||||
message = "2/\(nsp),[\"\(event)\""
|
message = "2\(nsp),[\"\(event)\""
|
||||||
} else {
|
} else {
|
||||||
message = "2/\(nsp),\(id)[\"\(event)\""
|
message = "2\(nsp),\(id)[\"\(event)\""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -189,9 +190,9 @@ struct SocketPacket {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if id == -1 {
|
if id == -1 {
|
||||||
message = "5\(binary.count)-/\(nsp),[\"\(event)\""
|
message = "5\(binary.count)-\(nsp),[\"\(event)\""
|
||||||
} else {
|
} else {
|
||||||
message = "5\(binary.count)-/\(nsp),\(id)[\"\(event)\""
|
message = "5\(binary.count)-\(nsp),\(id)[\"\(event)\""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,12 +23,12 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class SocketParser {
|
class SocketParser {
|
||||||
private static func checkNSP(nsp:String, _ socket:SocketIOClient) -> Bool {
|
private static func isCorrectNamespace(nsp:String, _ socket:SocketIOClient) -> Bool {
|
||||||
return nsp == "" && socket.nsp != "/"
|
return nsp == socket.nsp
|
||||||
}
|
}
|
||||||
|
|
||||||
private static func handleAck(p:SocketPacket, socket:SocketIOClient) {
|
private static func handleAck(p:SocketPacket, socket:SocketIOClient) {
|
||||||
if checkNSP(p.nsp, socket) {
|
if !isCorrectNamespace(p.nsp, socket) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static func handleBinaryAck(p:SocketPacket, socket:SocketIOClient) {
|
private static func handleBinaryAck(p:SocketPacket, socket:SocketIOClient) {
|
||||||
if checkNSP(p.nsp, socket) {
|
if !isCorrectNamespace(p.nsp, socket) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static func handleBinaryEvent(p:SocketPacket, socket:SocketIOClient) {
|
private static func handleBinaryEvent(p:SocketPacket, socket:SocketIOClient) {
|
||||||
if checkNSP(p.nsp, socket) {
|
if !isCorrectNamespace(p.nsp, socket) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static func handleEvent(p:SocketPacket, socket:SocketIOClient) {
|
private static func handleEvent(p:SocketPacket, socket:SocketIOClient) {
|
||||||
if checkNSP(p.nsp, socket) {
|
if !isCorrectNamespace(p.nsp, socket) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var id = nil as Int?
|
var id = nil as Int?
|
||||||
var nsp = ""
|
var nsp:String?
|
||||||
var i = 0
|
var i = 0
|
||||||
var placeholders = -1
|
var placeholders = -1
|
||||||
|
|
||||||
@ -103,6 +103,8 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if arr[i + 1] == "/" {
|
if arr[i + 1] == "/" {
|
||||||
|
nsp = ""
|
||||||
|
|
||||||
while ++i < arr.count {
|
while ++i < arr.count {
|
||||||
let c = arr[i]
|
let c = arr[i]
|
||||||
|
|
||||||
@ -110,13 +112,13 @@ class SocketParser {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
nsp += String(c)
|
nsp! += String(c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if i + 1 >= arr.count {
|
if i + 1 >= arr.count {
|
||||||
return SocketPacket(type: SocketPacket.PacketType(str: type)!, id: id ?? -1,
|
return SocketPacket(type: SocketPacket.PacketType(str: type)!, id: id ?? -1,
|
||||||
nsp: nsp, placeholders: placeholders)
|
nsp: nsp ?? "/", placeholders: placeholders)
|
||||||
}
|
}
|
||||||
|
|
||||||
let next = String(arr[i + 1])
|
let next = String(arr[i + 1])
|
||||||
@ -141,7 +143,7 @@ class SocketParser {
|
|||||||
let data = SocketParser.parseData(noPlaceholders) as? [AnyObject] ?? [noPlaceholders]
|
let data = SocketParser.parseData(noPlaceholders) as? [AnyObject] ?? [noPlaceholders]
|
||||||
|
|
||||||
return SocketPacket(type: SocketPacket.PacketType(str: type)!, data: data, id: id ?? -1,
|
return SocketPacket(type: SocketPacket.PacketType(str: type)!, data: data, id: id ?? -1,
|
||||||
nsp: nsp, placeholders: placeholders)
|
nsp: nsp ?? "/", placeholders: placeholders)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user