Fix binary acks
This commit is contained in:
parent
98e0c355f9
commit
ffcd841267
@ -460,17 +460,17 @@ public class SocketEngine: NSObject, WebSocketDelegate {
|
|||||||
|
|
||||||
if let pingInterval = json["pingInterval"] as? Int {
|
if let pingInterval = json["pingInterval"] as? Int {
|
||||||
self.pingInterval = pingInterval / 1000
|
self.pingInterval = pingInterval / 1000
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fatalError("Error parsing engine connect")
|
fatalError("Error parsing engine connect")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.startPingTimer()
|
||||||
|
|
||||||
if !self.forceWebsockets {
|
if !self.forceWebsockets {
|
||||||
self.doPoll()
|
self.doPoll()
|
||||||
}
|
}
|
||||||
|
|
||||||
self.startPingTimer()
|
|
||||||
|
|
||||||
return
|
return
|
||||||
} else if type == PacketType.CLOSE.rawValue {
|
} else if type == PacketType.CLOSE.rawValue {
|
||||||
if self.polling {
|
if self.polling {
|
||||||
|
|||||||
@ -348,7 +348,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
|
|||||||
Causes an event to be handled. Only use if you know what you're doing.
|
Causes an event to be handled. Only use if you know what you're doing.
|
||||||
*/
|
*/
|
||||||
public func handleEvent(event:String, data:[AnyObject]?, isInternalMessage:Bool = false,
|
public func handleEvent(event:String, data:[AnyObject]?, isInternalMessage:Bool = false,
|
||||||
wantsAck ack:Int? = nil, withAckType ackType:Int = 3) {
|
wantsAck ack:Int? = nil) {
|
||||||
// println("Should do event: \(event) with data: \(data)")
|
// println("Should do event: \(event) with data: \(data)")
|
||||||
if !self.connected && !isInternalMessage {
|
if !self.connected && !isInternalMessage {
|
||||||
return
|
return
|
||||||
@ -364,8 +364,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
|
|||||||
for handler in self.handlers {
|
for handler in self.handlers {
|
||||||
if handler.event == event {
|
if handler.event == event {
|
||||||
if ack != nil {
|
if ack != nil {
|
||||||
handler.executeCallback(data, withAck: ack!,
|
handler.executeCallback(data, withAck: ack!, withSocket: self)
|
||||||
withAckType: ackType, withSocket: self)
|
|
||||||
} else {
|
} else {
|
||||||
handler.executeCallback(data)
|
handler.executeCallback(data)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -134,12 +134,16 @@ class SocketPacket {
|
|||||||
var msg:String
|
var msg:String
|
||||||
|
|
||||||
if self.binary.count == 0 {
|
if self.binary.count == 0 {
|
||||||
|
self.type = SocketPacketType.ACK
|
||||||
|
|
||||||
if nsp == "/" {
|
if nsp == "/" {
|
||||||
msg = "3\(self.id!)["
|
msg = "3\(self.id!)["
|
||||||
} else {
|
} else {
|
||||||
msg = "3/\(self.nsp),\(self.id!)["
|
msg = "3/\(self.nsp),\(self.id!)["
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
self.type = SocketPacketType.BINARY_ACK
|
||||||
|
|
||||||
if nsp == "/" {
|
if nsp == "/" {
|
||||||
msg = "6\(self.binary.count)-\(self.id!)["
|
msg = "6\(self.binary.count)-\(self.id!)["
|
||||||
} else {
|
} else {
|
||||||
@ -195,8 +199,6 @@ class SocketPacket {
|
|||||||
if let str = self.data?[i] as? String {
|
if let str = self.data?[i] as? String {
|
||||||
if let num = str["~~(\\d)"].groups() {
|
if let num = str["~~(\\d)"].groups() {
|
||||||
newArr[i] = self.binary[num[1].toInt()!]
|
newArr[i] = self.binary[num[1].toInt()!]
|
||||||
} else {
|
|
||||||
newArr[i] = str
|
|
||||||
}
|
}
|
||||||
} else if self.data?[i] is NSDictionary || self.data?[i] is NSArray {
|
} else if self.data?[i] is NSDictionary || self.data?[i] is NSArray {
|
||||||
newArr[i] = self._fillInPlaceholders(self.data![i])
|
newArr[i] = self._fillInPlaceholders(self.data![i])
|
||||||
|
|||||||
@ -197,7 +197,8 @@ class SocketParser {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
socket.handleEvent(p.getEvent(), data: p.data, isInternalMessage: false, wantsAck: p.id, withAckType: 3)
|
socket.handleEvent(p.getEvent(), data: p.data, isInternalMessage: false,
|
||||||
|
wantsAck: p.id)
|
||||||
} else if p.type == SocketPacketType.ACK {
|
} else if p.type == SocketPacketType.ACK {
|
||||||
if checkNSP(p.nsp) {
|
if checkNSP(p.nsp) {
|
||||||
return
|
return
|
||||||
@ -250,7 +251,7 @@ class SocketParser {
|
|||||||
|
|
||||||
if !packet.justAck {
|
if !packet.justAck {
|
||||||
socket.handleEvent(packet.getEvent(), data: packet.data,
|
socket.handleEvent(packet.getEvent(), data: packet.data,
|
||||||
wantsAck: packet.id, withAckType: 6)
|
wantsAck: packet.id)
|
||||||
} else {
|
} else {
|
||||||
socket.handleAck(packet.id!, data: packet.data)
|
socket.handleAck(packet.id!, data: packet.data)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user