Ios 如何在swift中使用SocketIOClient中的名称空间

Ios 如何在swift中使用SocketIOClient中的名称空间,ios,swift,socket.io,Ios,Swift,Socket.io,我正在使用最新版本的SocketIOClient(13.1.1)。如何使用命名空间发出或侦听。这就足够了: class SocketIOManager: NSObject { static let sharedInstance = SocketIOManager() let manager = SocketManager(socketURL: URL(string: "")!, config: [.log(false), .compress, .forcePolling(fa

我正在使用最新版本的SocketIOClient(13.1.1)。如何使用命名空间发出或侦听。

这就足够了:

class SocketIOManager: NSObject {

    static let sharedInstance = SocketIOManager()

    let manager = SocketManager(socketURL: URL(string: "")!, config: [.log(false), .compress, .forcePolling(false)])

    var avaialableCallBack:(([Any]) -> Void)?

    override init(){
        super.init()
    }



    func establishConnection() {

        let socket = manager.socket(forNamespace: "/consumer")

        socket.on("connect") { (data, ack) -> Void in
            print("socket connected",data,ack)
        }

        socket.on(clientEvent: .disconnect){data, ack in
            print("socket disconnected")
        }

        socket.on("session-available") { (dataArr, ack) -> Void in
            ack.with(true)
            if let sessionAvailableCB = self.avaialableCallBack {
                sessionAvailableCB(dataArr)
            }
        }

        socket.connect()
    }

    func closeConnection() {
        let socket = manager.socket(forNamespace: "/consumer")
        socket.disconnect()
    }

    func emitMessage(message:String,data:[String:Any]){
        let socket = manager.socket(forNamespace: "/consumer")
        socket.emit(message,data)
    }

    func emitMessageWithAck(message:String,data:[String:Any]) -> OnAckCallback{
        let socket = manager.socket(forNamespace: "/consumer")
        return socket.emitWithAck(message, data)
    }



}

这就足够了:

class SocketIOManager: NSObject {

    static let sharedInstance = SocketIOManager()

    let manager = SocketManager(socketURL: URL(string: "")!, config: [.log(false), .compress, .forcePolling(false)])

    var avaialableCallBack:(([Any]) -> Void)?

    override init(){
        super.init()
    }



    func establishConnection() {

        let socket = manager.socket(forNamespace: "/consumer")

        socket.on("connect") { (data, ack) -> Void in
            print("socket connected",data,ack)
        }

        socket.on(clientEvent: .disconnect){data, ack in
            print("socket disconnected")
        }

        socket.on("session-available") { (dataArr, ack) -> Void in
            ack.with(true)
            if let sessionAvailableCB = self.avaialableCallBack {
                sessionAvailableCB(dataArr)
            }
        }

        socket.connect()
    }

    func closeConnection() {
        let socket = manager.socket(forNamespace: "/consumer")
        socket.disconnect()
    }

    func emitMessage(message:String,data:[String:Any]){
        let socket = manager.socket(forNamespace: "/consumer")
        socket.emit(message,data)
    }

    func emitMessageWithAck(message:String,data:[String:Any]) -> OnAckCallback{
        let socket = manager.socket(forNamespace: "/consumer")
        return socket.emitWithAck(message, data)
    }



}

在最新的SocketIO库中没有这样的方法。joinNamespace(“/consumer”)等请提供最新库的解决方案非常感谢您在最新的SocketIO库中没有这样的方法。joinNamespace(“/consumer”)等请提供最新库的解决方案非常感谢您