Как создать singleton для WebSocket (Starscream)?

76
4

Я пытаюсь создать singleton с функциональностью WebSocket, и я просто не знаю, почему он не работает

Это мое однострочное расширение:

import Starscream

extension WebSocketManager: WebSocketDelegate {
func websocketDidConnect(socket: WebSocket) {
print("websocket is connected")
}

func websocketDidDisconnect(socket: WebSocket, error: NSError?) {
if let e = error {
print("websocket is disconnected: \(e.localizedDescription)")
} else {
print("websocket disconnected")
}
}

func websocketDidReceiveMessage(socket: WebSocket, text: String) {
print("Received text: \(text)")
}

func websocketDidReceiveData(socket: WebSocket, data: Data) {
print("Received data: \(data.count)")
}}

Мой синглтон:

final class WebSocketManager: NSObject {
static let sharedInstance = WebSocketManager()
public var socket = WebSocket(url: URL(string: "ws://t-w-a.herokuapp.com/new")!)

private override init() {
super.init()
// testing connection of the socket
}

func establishConnection() {
socket.connect()
}

func closeConnection() {
socket.disconnect()
}}

Когда я пытаюсь подключить сервер, ничего не происходит. Вот мой контроллер:

class ChatViewController: UIViewController {

@IBOutlet weak var typeText: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
WebSocketManager.sharedInstance.establishConnection()
}}

спросил(а) 2021-01-25T14:09:10+03:00 4 месяца, 4 недели назад
1
Решение
63

Я нашел проблему, я просто забыл назначить сокет переменной с делегатом

ответил(а) 2021-01-25T14:09:10+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема