после обновления socket.io клиент swift с 9.0.1 до 13.2.1 не может подключиться - PullRequest
0 голосов
/ 31 мая 2018

использование того же кода, что и для подключения к серверу сокетов в AWS с клиентской версией 9.0.1, не работает с 13.2.1 после обновления.перед обновлением код следовал

lazy var socket:SocketIOClient = {
    //let cookieStorage = HTTPCookieStorage.shared
    //let cookies = cookieStorage.cookies
    return SocketIOClient(socketURL: URL(string: baseUrl)!, config: [.log(true), .forcePolling(true), .reconnectAttempts(-1), .reconnects(true), .reconnectWait(5), .doubleEncodeUTF8(true)])
}()
func socketInit(){


        socket.on("connect") {data, ack in
            print("socket connected")
            let accessToken = TrueketekeClient.instance.accessToken as! String
            self.socket.emit("authentication", ["id": accessToken, "userId": User.current!.id as! String])

        }

        socket.on("authenticated") {data, ack in
            print("socket authenticated", data)
            self.sendEnabled = true
            if self.room != nil {
                self.joinRoom()
            }

        }

        socket.on("room:join") {data, ack in
            print(data)
            if self.room == nil {
                self.newRoom = true
                let dictData = data[0] as! [String:Any]
                let room:Room? = Mapper<Room>().map(JSON: dictData)
                self.room = room
                self.newRoom = false
                AnswerLog.chat()
            }

            if let title = self.room?.trueke?.title {
                self.title = title
            }

            self.emitMessageQueue()

        }

        socket.on("message:readedAll") {data, ack in
            if let userId = data[0] as? String{
                if userId != User.current?.id as? String {
                    self.dataSource.updateReadedStatus(User.current?.id as? String)
                }
            }

        }

        socket.on("message:send") {data, ack in
            let dictData = data[0] as! [String:Any]
            let message:Message? = Mapper<Message>().map(JSON: dictData)

            if let index = self.messageQueue.index(where: {$0.uid  == message?.uid}){
                self.messageSender.updateMessage(self.messageQueue[index], status: .success, readed: message?.unreaded == nil)
                self.messageQueue.remove(at: index)
            }else{
                if message != nil {
                    self.addMessage(message!)
                }
            }

           /* if message?.userId as? String != User.current?.id as? String {
                self.dataSource.updateReadedStatus(User.current?.id as? String)
            }*/

        }

        socket.on("error") {data, ack in

            self.errorQueue()


        }

        socket.on("disconnect") {data, ack in
            if self.socket.status == .notConnected || self.socket.status == .disconnected {
               // self.socket.connect()
            }

            self.leaveRoom()

            self.errorQueue()


        }

        /*socketClient.on("currentAmount") {data, ack in
            if let cur = data[0] as? Double {
                socketClient.emitWithAck("canUpdate", cur)(timeoutAfter: 0) {data in
                    socketClient.emit("update", ["amount": cur + 2.50])
                }

                ack.with("Got your currentAmount", "dude")
            }
        }*/

        socket.connect()

    }

и вызывал его в viewWillApper

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    socketInit()
}

после обновления библиотеки до версии 13.2.1 нового объявления.

var socket:SocketIOClient = SocketManager(socketURL: URL(string: baseUrl)!, config: [.log(true), .forcePolling(true), .reconnectAttempts(-1), .reconnects(true), .reconnectWait(5)]).defaultSocket

и вызов того же метода, что и выше в viewWillAppear , это не связанное сообщение, и вы получите это сообщение из консоли.

2018-05-30 21: 38: 22.201430-0400 Trueketeke [1598: 688036] LOG SocketManager: Выпуск диспетчера iniciando Socket 2018-05-30 21: 38: 22.249842-0400 Trueketeke [1598: 688036] LOG SocketIOClient {/}: Добавление обработчикадля события: подключите 2018-05-30 21: 38: 22.249948-0400 Trueketeke [1598: 688036] LOG SocketIOClient {/}: добавление обработчика для события: аутентифицировано 2018-05-30 21: 38: 22.249991-0400 Trueketeke [1598:688036] LOG SocketIOClient {/}: добавление обработчика для события: комната: соединение 2018-05-30 21: 38: 22.250024-0400 Trueketeke [1598: 688036] LOG SocketIOClient {/}: добавление обработчика для события: сообщение: readedAll 2018-05-30 21: 38: 22.250052-0400 Trueketeke [1598: 688036] LOG SocketIOClient {/}: добавление обработчика для события: сообщение: отправка 2018-05-30 21: 38: 22.250085-0400 Trueketeke [1598: 688036] LOG SocketIOClient {/}: добавление обработчика для события: ошибка 2018-05-30 21: 38: 22.250114-0400 Trueketeke [1598: 688036] LOG SocketIOClient {/}: добавление обработчика для события: отключение при подключении 2018-05-30 21: 38: 22.250201-0400 Trueketeke [1598: 688036] LOG SocketIOClient {/}: Попытка подключения к уже подключенному сокету

, поэтому я не вижу сообщения, указывающего print ("сокет подключен") , поэтому любые идеи почему не получаютсяподключен к розетке

...