2.1.4.4 Real-Time via Socket.io-Client-Swift

// Services/SocketService.swift
import SocketIO

class SocketService: ObservableObject {
    static let shared = SocketService()
    private var manager: SocketManager?
    private var socket: SocketIOClient?

    private init() {
        // For local dev, if your backend runs on 4000
        manager = SocketManager(socketURL: URL(string: "http://localhost:4000")!,
                                config: [.log(false), .compress])
        socket = manager?.defaultSocket

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

        socket?.on("tradeUpdate") { data, ack in
            // handle real-time trade update
            print("Received trade update: \(data)")
        }

        socket?.connect()
    }

    func sendMessage(event: String, message: [String: Any]) {
        socket?.emit(event, message)
    }
}

Last updated