To use the client, initialize a SocketManager with a socketURL and an optional configuration array (e.g., .log(true), .compress). Access the connection via manager.defaultSocket. You can listen for events using .on(clientEvent:) for system events like .connect, or .on("eventName") for custom server events. Use .emit() to send data and .emitWithAck() for acknowledgments.
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
if data.first as? String ?? "passed" == SocketAckStatus.noAck {
// Handle ack timeout
}
socket.emit("update", ["amount": cur + 2.50])
}
ack.with("Got your currentAmount", "dude")
}
socket.connect()