无法使用socket.io-client-swift从服务器端接收数据

时间:2019-06-24 09:25:40

标签: socket.io swift4 xcode10

我正在创建一个聊天应用程序,其中服务器端使用node.js,客户端端使用socket.io-client-swift。当我尝试连接到服务器时,它会完美连接,但是当我要接收数据数组时,它会以一个空数组作为响应。我已经尝试了很多次,但是没有用,但是在android中可以完美地接收数据而没有任何问题。

  1. 连接到服务器
  2. 连接好后,发出emit(“ joinRoom”)
  3. 当我连接到房间时,使用on(“ welcome”)接收数据

我添加了两张控制台响应图片

  1. 第一个告诉我无效的命名空间first part response in console
  2. 第二个显示给我空数组second part response in console

插座经理

    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)")

                        }
                    }

                }


    }

我的ViewController

import UIKit

class ViewController: UIViewController {

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

0 个答案:

没有答案