Ios 如何在swift中使用socketio

Ios 如何在swift中使用socketio,ios,swift,Ios,Swift,错误: 块引用 它说参数标签“String:”与任何可用的重载都不匹配 我怎样才能解决这个问题。 任何帮助都将不胜感激。我建议您在尝试实现Socket IO之前先阅读Socket IO文档。要开始,您需要在套接字管理器类中具有socketClient属性,并且需要在使用套接字事件之前实例化socketClient class SocketManager { //Socket IO client instance to emit and observe events of your socke

错误: 块引用 它说参数标签“String:”与任何可用的重载都不匹配

我怎样才能解决这个问题。
任何帮助都将不胜感激。

我建议您在尝试实现Socket IO之前先阅读Socket IO文档。要开始,您需要在套接字管理器类中具有socketClient属性,并且需要在使用套接字事件之前实例化socketClient

class SocketManager {
  //Socket IO client instance to emit and observe events of your socket
  private let socketClient: SocketIOClient!

  private init() {
    let socketUrl = "Your Socket URL here"
    socketClient = SocketIOClient(socketURL: URL(string: socketURL)!)
    setupEvents()
  }

  func setupEvents() {
    socket.on("test") { dataArray, ack in
    print(dataArray)
  }

}

希望这能帮助您入门

我建议您编写以下代码:

import SocketIO

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

socket.on(clientEvent: .connect) {data, ack in
    print("socket connected")
}

socket.on("currentAmount") {data, ack in
    guard let cur = data[0] as? Double else { return }

    socket.emitWithAck("canUpdate", cur).timingOut(after: 0) {data in
        socket.emit("update", ["amount": cur + 2.50])
    }

    ack.with("Got your currentAmount", "dude")
}

socket.connect()

请用正确的格式粘贴你的代码,这样对其他人的可读性会有帮助。另外,请仔细阅读堆栈溢出指南,了解如何发布一个好的问题-
import SocketIO

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

socket.on(clientEvent: .connect) {data, ack in
    print("socket connected")
}

socket.on("currentAmount") {data, ack in
    guard let cur = data[0] as? Double else { return }

    socket.emitWithAck("canUpdate", cur).timingOut(after: 0) {data in
        socket.emit("update", ["amount": cur + 2.50])
    }

    ack.with("Got your currentAmount", "dude")
}

socket.connect()