I took this piece of code from an example of creating a WebSocket connection with the Starscream library based on UIKit. How can I make it work in my SwiftUI project?
class ViewController: UIViewController, WebSocketDelegate {
var socket: WebSocket!
var isConnected: Bool = false
let server = WebSocketServer()
var token: String = ""
override func viewDidLoad() {
super.viewDidLoad()
var request = URLRequest(url: URL(string: "wss://-----")!)
request.timeoutInterval = 5
request.setValue("https://-----", forHTTPHeaderField: "Origin")
socket = WebSocket(request: request)
socket.delegate = self
socket.connect()
}
func didReceive(event: WebSocketEvent, client: WebSocket) {
switch event {
case .connected(let headers):
isConnected = true
print("websocket is connected: (headers)")
case .disconnected(let reason, let code):
isConnected = false
print("websocket is disconnected: (reason) with code: (code)")
case .text(let string):
if string.contains("token expiring") { print("expiring"); socket.disconnect() }
print("Received text: (string)")
case .binary(let data):
print("Received data: (data.count)")
case .ping(_):
break
case .pong(_):
break
case .viabilityChanged(_):
break
case .reconnectSuggested(_):
break
case .cancelled:
isConnected = false
case .error(let error):
isConnected = false
handleError(error)
} }