Обработчик клиента Socket.io Swift не запускается - PullRequest
0 голосов
/ 02 мая 2018

У меня проблема с клиентом soket.io, и когда я читаю здесь , вы должны определить менеджер сокетов как глобальную переменную, чтобы он не выпускался ARC.

Мой код с учетом этого:

let manager = SocketManager(socketURL: URL(string: Api.SOCKET)!, config: [.log(true), .path(Api.SOCKET_PATH)])
let socket: SocketIOClient?
....

override func viewDidLoad() {
    super.viewDidLoad()
    subscribeOnTransaction() {  }
}

func subscribeOnTransaction() {
     if self.socket == nil {       

        socket = manager.socket(forNamespace: Api.SOCKET_PATH)
        subscribeToChangesChannel { }
        socket?.on(clientEvent: .connect) { data, ack in
            self.socket?.emit("transaction", self.sellOrder.id!)

        }

        self.socket?.on(clientEvent: .statusChange) {data, ack in
            print(data)
        }
        self.socket?.connect()
    }
}

func subscribeToChangesChannel(completion: @escaping () -> Void) { 
   if let socket = self.socket {

        socket.on("transaction/\(self.sellOrder.id!)") { data, ack in
            print(data, ack)
            if data.count > 0 {
                let rawResult = data[0]
                if let result = rawResult as? [String: Any] {
                    let newRawValue = result["new_val"]
                    if let transaction = self.parseSocketResponse(newRawValue) {
                        self.openTransactionTrackingScreen(transaction)
                        completion()
                    }
                }
            }
        }
    }
}

Но он не вызывает обработчики, когда я устанавливаю точки останова. Соединение установлено, все нормально, с включенным логом получаю

Получил ответ на опрос LOG SocketEnginePolling: Получено сообщение опроса:

В чем может быть проблема? Есть идеи? Буду признателен за любую помощь, спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...