gpt4 book ai didi

ios - 如何与Socket.io连接? swift 4

转载 作者:行者123 更新时间:2023-12-01 23:01:46 25 4
gpt4 key购买 nike

我已阅读 latest documentation Swift 的 Socket.io。还有一个新连接的示例:

let manager = SocketManager(socketURL: URL(string: "http://localhost:8080")!, config: [.log(true), .compress])
let socket = manager.defaultSocket

所以我创建了一个类SocketIOManager,如下所示:

class SocketIOManager: NSObject {

static let manager = SocketManager(socketURL: URL(string: "myurl.com:443"))
static let socket = manager.defaultSocket

class func connectSocket(){
socket.connect()
}

class func reciveMessage(){
socket.on("new-message-mob") { (dataArray, ack) in
print(dataArray.count)
}
}
}

然后我只需在 ViewController 中调用 SocketIOManager.connectSocket() 方法。但服务器产生错误。我不开发服务器端。我只需要知道 - 我是否正确创建了连接?现在如何通过 Socket.io 连接到套接字?

P.S 服务器错误 - 必须提供 jwt(看起来没有 token ,但确实有)。

更新(使用虚拟值):

我像这样传递 token :

static let manager = SocketManager(socketURL: URL(string: "https://myurl:443?token=\(token)")!)
static let socket = manager.defaultSocket

最佳答案

因此,要解决这个问题,我们必须采取以下措施:

  1. 为 manager.config 添加 .connectParams(["token": token]) - 在我的如果我必须使用“token”键作为 URL 参数。
  2. 添加.secure(true)manager.config 的参数。
  3. 添加“应用程序传输安全性”设置” key in info.plist (Dictionary type) 和子键“Allow任意负载”( bool 类型),值为 YES。

代码:

class SocketIOManager: NSObject {

static let manager = SocketManager(socketURL: URL(string: "https://yoururl.com:443")!, config: [.log(true), .compress])
static let socket = manager.defaultSocket


class func connectSocket(){
self.manager.config = SocketIOClientConfiguration(
arrayLiteral: .connectParams(["token": token], .secure(true)
)
socket.connect()
}

class func disconnectSocket(){
socket.disconnect()
}
}

关于ios - 如何与Socket.io连接? swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49491357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com