Revert "feat(websocket): update websocket code"
This reverts commit 27e495722e
.
This commit is contained in:
parent
d94aa092d9
commit
4a9a0e52d6
@ -266,17 +266,18 @@ extension ApiRequest {
|
||||
}
|
||||
|
||||
private func requestTrafficInfo() {
|
||||
trafficWebSocket?.forceDisconnect()
|
||||
trafficWebSocket?.disconnect(forceTimeout: 0, closeCode: 0)
|
||||
trafficWebSocketRetryCount += 1
|
||||
if trafficWebSocketRetryCount > 5 {
|
||||
NSUserNotificationCenter.default.postStreamApiConnectFail(api: "Traffic")
|
||||
return
|
||||
}
|
||||
|
||||
guard let url = URL(string: ConfigManager.apiUrl.appending("/traffic")) else { return }
|
||||
var request = URLRequest(url: url)
|
||||
request.headers = ApiRequest.authHeader()
|
||||
let socket = WebSocket(request: request)
|
||||
let socket = WebSocket(url: URL(string: ConfigManager.apiUrl.appending("/traffic"))!)
|
||||
|
||||
for header in ApiRequest.authHeader() {
|
||||
socket.request.setValue(header.value, forHTTPHeaderField: header.name)
|
||||
}
|
||||
socket.delegate = self
|
||||
socket.connect()
|
||||
trafficWebSocket = socket
|
||||
@ -291,11 +292,11 @@ extension ApiRequest {
|
||||
}
|
||||
|
||||
let uriString = "/logs?level=".appending(ConfigManager.selectLoggingApiLevel.rawValue)
|
||||
guard let url = URL(string: ConfigManager.apiUrl.appending(uriString)) else { return }
|
||||
var request = URLRequest(url: url)
|
||||
request.headers = ApiRequest.authHeader()
|
||||
let socket = WebSocket(request: request)
|
||||
let socket = WebSocket(url: URL(string: ConfigManager.apiUrl.appending(uriString))!)
|
||||
|
||||
for header in ApiRequest.authHeader() {
|
||||
socket.request.setValue(header.value, forHTTPHeaderField: header.name)
|
||||
}
|
||||
socket.delegate = self
|
||||
socket.connect()
|
||||
loggingWebSocket = socket
|
||||
@ -303,37 +304,24 @@ extension ApiRequest {
|
||||
}
|
||||
|
||||
extension ApiRequest: WebSocketDelegate {
|
||||
func didReceive(event: WebSocketEvent, client: WebSocket) {
|
||||
switch event {
|
||||
case .connected:
|
||||
websocketDidConnect(socket: client)
|
||||
case let .text(text):
|
||||
websocketDidReceiveMessage(socket: client, text: text)
|
||||
case let .disconnected(err, code):
|
||||
websocketDidDisconnect(socket: client, error: err, code: code)
|
||||
case let .error(error):
|
||||
if let error = error {
|
||||
websocketDidDisconnect(socket: client,
|
||||
error: error.localizedDescription,
|
||||
code: UInt16((error as NSError).code))
|
||||
}
|
||||
default:
|
||||
Logger.log("\(client) \(event)", level: .debug)
|
||||
}
|
||||
}
|
||||
|
||||
func websocketDidConnect(socket: WebSocket?) {
|
||||
if socket == trafficWebSocket {
|
||||
func websocketDidConnect(socket: WebSocketClient) {
|
||||
guard let webSocket = socket as? WebSocket else { return }
|
||||
if webSocket == trafficWebSocket {
|
||||
Logger.log("trafficWebSocket did Connect", level: .debug)
|
||||
} else {
|
||||
Logger.log("loggingWebSocket did Connect", level: .debug)
|
||||
}
|
||||
}
|
||||
|
||||
func websocketDidDisconnect(socket: WebSocket, error: String, code: UInt16) {
|
||||
Logger.log("websocketDidDisconnect: \(error) \(code)", level: .error)
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
|
||||
if socket == self.trafficWebSocket {
|
||||
func websocketDidDisconnect(socket: WebSocketClient, error: Error?) {
|
||||
guard let err = error else {
|
||||
return
|
||||
}
|
||||
|
||||
Logger.log(err.localizedDescription, level: .error)
|
||||
DispatchQueue.global().asyncAfter(deadline: .now() + 1) {
|
||||
guard let webSocket = socket as? WebSocket else { return }
|
||||
if webSocket == self.trafficWebSocket {
|
||||
Logger.log("trafficWebSocket did disconnect", level: .debug)
|
||||
self.requestTrafficInfo()
|
||||
} else {
|
||||
@ -343,18 +331,15 @@ extension ApiRequest: WebSocketDelegate {
|
||||
}
|
||||
}
|
||||
|
||||
func websocketDidReceiveMessage(socket: WebSocket, text: String) {
|
||||
func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
|
||||
guard let webSocket = socket as? WebSocket else { return }
|
||||
let json = JSON(parseJSON: text)
|
||||
if socket == trafficWebSocket {
|
||||
if webSocket == trafficWebSocket {
|
||||
delegate?.didUpdateTraffic(up: json["up"].intValue, down: json["down"].intValue)
|
||||
} else {
|
||||
delegate?.didGetLog(log: json["payload"].stringValue, level: json["type"].string ?? "info")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension WebSocket: Equatable {
|
||||
public static func == (lhs: WebSocket, rhs: WebSocket) -> Bool {
|
||||
lhs.request == rhs.request
|
||||
}
|
||||
func websocketDidReceiveData(socket: WebSocketClient, data: Data) {}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user