не может получить данные со стороны сервера, используя socket.io-client-swift - PullRequest
0 голосов
/ 24 июня 2019

Я создаю приложение для чата, где на стороне сервера используется node.js, а на стороне клиента - socket.io-client-swift. Когда я пытаюсь подключиться к серверу, он подключается идеально, но когда я хочу получить массив данных, он отвечает пустым массивом. Я пытался много раз, но не работает, но в Android получить данные совершенно без проблем.

  1. подключиться к серверу
  2. после подключения emit ("joinRoom")
  3. когда я подключаюсь к комнате, получаю данные с помощью on ("welcome")

Я добавил две картинки ответа консоли

  1. первый говорит мне Неверное пространство имен ответ первой части в консоли
  2. второй показывает мне пустой массив ответ второй части в консоли

менеджер розеток

    class SocketIOManager: NSObject {
      static let sharedInstance = SocketIOManager()
      let manager = SocketManager( socketURL: URL(string:"https://realtime.allonsy-tech.com/members_chat")!, config: [.log(true),.compress])
        var socket : SocketIOClient!

        override init() {
            super.init()
            self.socket = manager.defaultSocket
        }
    //    /members_chat
              func establishConnection(){
                 socket.connect()
                }
            func closeConnection(){
                 socket.disconnect()
                }
              func joinTheRoom(){
                socket.emit("joinRoom") {
                    print("I have joined ")
                }
            }

            func welcome ( ){
                     socket.on(clientEvent: .connect) {data, ack in
                        print("socket connected")
                         self.joinTheRoom()
                        self.socket.on("welcome") { (data, ack) in
                            print(data)
                            print("\(ack)")

                        }
                    }

                }


    }

My ViewController

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
     SocketIOManager.sharedInstance.establishConnection()
        SocketIOManager.sharedInstance.welcome()
    }
}
...