WebSockets: removed unnecessary weaks and simplified code
This commit is contained in:
parent
d5b9afd28d
commit
2bb7360918
@ -378,16 +378,12 @@ public class WebSocket : NSObject, NSStreamDelegate {
|
|||||||
}
|
}
|
||||||
if totalSize > 0 {
|
if totalSize > 0 {
|
||||||
if validateResponse(buffer, bufferLen: totalSize) {
|
if validateResponse(buffer, bufferLen: totalSize) {
|
||||||
dispatch_async(queue, { [weak self] in
|
dispatch_async(queue, {
|
||||||
guard let weakSelf = self else {
|
self.connected = true
|
||||||
return
|
if let connectBlock = self.onConnect {
|
||||||
}
|
|
||||||
|
|
||||||
weakSelf.connected = true
|
|
||||||
if let connectBlock = weakSelf.onConnect {
|
|
||||||
connectBlock()
|
connectBlock()
|
||||||
}
|
}
|
||||||
weakSelf.delegate?.websocketDidConnect(weakSelf)
|
self.delegate?.websocketDidConnect(self)
|
||||||
})
|
})
|
||||||
totalSize += 1 //skip the last \n
|
totalSize += 1 //skip the last \n
|
||||||
let restSize = bufferLen - totalSize
|
let restSize = bufferLen - totalSize
|
||||||
@ -525,15 +521,9 @@ public class WebSocket : NSObject, NSStreamDelegate {
|
|||||||
data = NSData(bytes: UnsafePointer<UInt8>((buffer+offset)), length: Int(len))
|
data = NSData(bytes: UnsafePointer<UInt8>((buffer+offset)), length: Int(len))
|
||||||
}
|
}
|
||||||
if receivedOpcode == OpCode.Pong.rawValue {
|
if receivedOpcode == OpCode.Pong.rawValue {
|
||||||
dispatch_async(queue, { [weak self] in
|
dispatch_async(queue, {
|
||||||
guard let weakSelf = self else {
|
self.onPong?()
|
||||||
return
|
self.pongDelegate?.websocketDidReceivePong(self)
|
||||||
}
|
|
||||||
|
|
||||||
if let pongBlock = weakSelf.onPong {
|
|
||||||
pongBlock()
|
|
||||||
}
|
|
||||||
weakSelf.pongDelegate?.websocketDidReceivePong(weakSelf)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
let step = Int(offset+numericCast(len))
|
let step = Int(offset+numericCast(len))
|
||||||
@ -618,33 +608,24 @@ public class WebSocket : NSObject, NSStreamDelegate {
|
|||||||
dequeueWrite(data, code: OpCode.Pong)
|
dequeueWrite(data, code: OpCode.Pong)
|
||||||
} else if response.code == .TextFrame {
|
} else if response.code == .TextFrame {
|
||||||
let str: NSString? = NSString(data: response.buffer!, encoding: NSUTF8StringEncoding)
|
let str: NSString? = NSString(data: response.buffer!, encoding: NSUTF8StringEncoding)
|
||||||
if str == nil {
|
|
||||||
|
if let str = str as String? {
|
||||||
|
dispatch_async(queue, {
|
||||||
|
self.onText?(str)
|
||||||
|
self.delegate?.websocketDidReceiveMessage(self, text: str)
|
||||||
|
})
|
||||||
|
} else {
|
||||||
writeError(CloseCode.Encoding.rawValue)
|
writeError(CloseCode.Encoding.rawValue)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
dispatch_async(queue, { [weak self] in
|
|
||||||
guard let weakSelf = self else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if let textBlock = weakSelf.onText {
|
|
||||||
textBlock(str! as String)
|
|
||||||
}
|
|
||||||
weakSelf.delegate?.websocketDidReceiveMessage(weakSelf, text: str! as String)
|
|
||||||
})
|
|
||||||
} else if response.code == .BinaryFrame {
|
} else if response.code == .BinaryFrame {
|
||||||
let data = response.buffer! //local copy so it is perverse for writing
|
let data = response.buffer! //local copy so it is perverse for writing
|
||||||
dispatch_async(queue, { [weak self] in
|
dispatch_async(queue) {
|
||||||
guard let weakSelf = self else {
|
self.onData?(data)
|
||||||
return
|
self.delegate?.websocketDidReceiveData(self, data: data)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let dataBlock = weakSelf.onData {
|
|
||||||
dataBlock(data)
|
|
||||||
}
|
|
||||||
weakSelf.delegate?.websocketDidReceiveData(weakSelf, data: data)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
readStack.removeLast()
|
readStack.removeLast()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -745,17 +726,12 @@ public class WebSocket : NSObject, NSStreamDelegate {
|
|||||||
///used to preform the disconnect delegate
|
///used to preform the disconnect delegate
|
||||||
private func doDisconnect(error: NSError?) {
|
private func doDisconnect(error: NSError?) {
|
||||||
if !self.didDisconnect {
|
if !self.didDisconnect {
|
||||||
dispatch_async(queue, { [weak self] in
|
dispatch_async(queue) {
|
||||||
guard let weakSelf = self else {
|
self.didDisconnect = true
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
weakSelf.didDisconnect = true
|
self.onDisconnect?(error)
|
||||||
if let disconnect = weakSelf.onDisconnect {
|
self.delegate?.websocketDidDisconnect(self, error: error)
|
||||||
disconnect(error)
|
|
||||||
}
|
}
|
||||||
weakSelf.delegate?.websocketDidDisconnect(weakSelf, error: error)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user