mirror of https://github.com/oxen-io/session-ios
Clean up WebSocket
parent
48ef3f85c0
commit
36962cc059
@ -1,61 +0,0 @@
|
||||
import Foundation
|
||||
import SocketRocket
|
||||
|
||||
public protocol MockWebSocketDelegate : AnyObject {
|
||||
|
||||
func webSocketDidConnect(_ webSocket: MockWebSocket)
|
||||
func webSocketDidDisconnect(_ webSocket: MockWebSocket)
|
||||
func webSocket(_ webSocket: MockWebSocket, didReceive data: String)
|
||||
}
|
||||
|
||||
public final class MockWebSocket : NSObject {
|
||||
public weak var delegate: MockWebSocketDelegate?
|
||||
private var socket: SRWebSocket?
|
||||
|
||||
public var isConnected: Bool {
|
||||
return socket != nil
|
||||
}
|
||||
|
||||
private override init() { }
|
||||
|
||||
public static let shared = MockWebSocket()
|
||||
|
||||
public func connect(url: URL) {
|
||||
socket = SRWebSocket(url: url)
|
||||
socket?.delegate = self
|
||||
socket?.open()
|
||||
}
|
||||
|
||||
public func disconnect() {
|
||||
socket?.close()
|
||||
socket = nil
|
||||
delegate?.webSocketDidDisconnect(self)
|
||||
}
|
||||
|
||||
public func send(_ data: Data) {
|
||||
guard let socket = socket else { return }
|
||||
socket.send(data)
|
||||
}
|
||||
}
|
||||
|
||||
extension MockWebSocket : SRWebSocketDelegate {
|
||||
|
||||
public func webSocket(_ webSocket: SRWebSocket!, didReceiveMessage message: Any!) {
|
||||
guard let message = message as? String else { return }
|
||||
delegate?.webSocket(self, didReceive: message)
|
||||
}
|
||||
|
||||
public func webSocketDidOpen(_ webSocket: SRWebSocket!) {
|
||||
delegate?.webSocketDidConnect(self)
|
||||
}
|
||||
|
||||
public func webSocket(_ webSocket: SRWebSocket!, didFailWithError error: Error!) {
|
||||
SNLog("Web socket failed with error: \(error?.localizedDescription ?? "nil").")
|
||||
self.disconnect()
|
||||
}
|
||||
|
||||
public func webSocket(_ webSocket: SRWebSocket!, didCloseWithCode code: Int, reason: String!, wasClean: Bool) {
|
||||
SNLog("Web socket closed.")
|
||||
self.disconnect()
|
||||
}
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
import Foundation
|
||||
import SocketRocket
|
||||
|
||||
public protocol WebSocketDelegate : AnyObject {
|
||||
|
||||
func webSocketDidConnect(_ webSocket: WebSocket)
|
||||
func webSocketDidDisconnect(_ webSocket: WebSocket)
|
||||
func webSocket(_ webSocket: WebSocket, didReceive message: String)
|
||||
}
|
||||
|
||||
public final class WebSocket : NSObject, SRWebSocketDelegate {
|
||||
private let socket: SRWebSocket
|
||||
public weak var delegate: WebSocketDelegate?
|
||||
|
||||
public init(url: URL) {
|
||||
socket = SRWebSocket(url: url)
|
||||
super.init()
|
||||
socket.delegate = self
|
||||
}
|
||||
|
||||
public func connect(url: URL) {
|
||||
socket.open()
|
||||
}
|
||||
|
||||
public func send(_ data: Data) {
|
||||
socket.send(data)
|
||||
}
|
||||
|
||||
public func webSocket(_ webSocket: SRWebSocket!, didReceiveMessage message: Any!) {
|
||||
guard let message = message as? String else { return }
|
||||
delegate?.webSocket(self, didReceive: message)
|
||||
}
|
||||
|
||||
public func disconnect() {
|
||||
socket.close()
|
||||
delegate?.webSocketDidDisconnect(self)
|
||||
}
|
||||
|
||||
public func webSocket(_ webSocket: SRWebSocket!, didFailWithError error: Error!) {
|
||||
SNLog("Web socket failed with error: \(error?.localizedDescription ?? "nil").")
|
||||
disconnect()
|
||||
}
|
||||
|
||||
public func webSocket(_ webSocket: SRWebSocket!, didCloseWithCode code: Int, reason: String!, wasClean: Bool) {
|
||||
SNLog("Web socket closed.")
|
||||
disconnect()
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue