使用socket.io-client-swift连接时可以更改connectParams吗?

时间:2019-03-05 08:06:19

标签: ios swift sockets socket.io

我正在使用套接字创建聊天。 使用connectParams输入您的昵称。 我想在连接到套接字时更改昵称。 我该如何更改?

func connectSocket(){
    manager = SocketManager(socketURL: URL(string: url!)!, config: [.compress, .connectParams(["chatUID":chatUID,"isAdmin":isAdmin,"nickName":nickName])])
    socketClient = manager?.socket(forNamespace: "/chat")

    socketClient?.on(clientEvent: .connect) {data, ack in
        if isJoin{
            self.sendJoinUser()
        }
    }
    socketClient?.connect()
}

我尝试过

func changeNickname(newNickName:String){
     manager?.config = [.compress, .connectParams(["chatUID":chatUID,"isAdmin":isAdmin,"nickName":newNickName])]
     socketClient?.setReconnecting(reason: "Change NickName")
}

不起作用

如何实时更改参数?

1 个答案:

答案 0 :(得分:1)

第一次断开socketClient。

socketClient?.disconnect()

然后使用新参数重新定义它。

manager = SocketManager(socketURL: URL(string: url!)!, config: [.compress, .connectParams(["chatUID":chatUID,"isAdmin":isAdmin,"nickName": newNickName])])
socketClient = manager?.socket(forNamespace: "/chat")

再次连接。

socketClient?.connect()

非常简单。