【问题标题】:Can I change connectParams while connecting using socket.io-client-swift?我可以在使用 socket.io-client-swift 连接时更改 connectParams 吗?
【发布时间】:2019-03-05 08:06:19
【问题描述】:

我正在使用套接字创建聊天。 使用 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")
}

没用

如何实时更改参数?

【问题讨论】:

    标签: ios swift sockets socket.io


    【解决方案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()
    

    非常简单。

    【讨论】:

      猜你喜欢
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2021-03-31
      • 2018-07-11
      • 2015-04-06
      • 1970-01-01
      • 2020-12-25
      相关资源
      最近更新 更多