Socket.io

2024-09-07  本文已影响0人  f8d1cf28626a

Socket.io

import SocketIO

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

let socket = manager.defaultSocket

// let socket = manager.socket(forNamespace: "/swift")

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" == SocketAckValue.noAck {
            // Handle ack timeout 
        }

        socket.emit("update", ["amount": cur + 2.50])
    }

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

socket.connect()

SocketIOClient

open class SocketIOClient : NSObject, SocketIOClientSpec

Properties

nsp
anyHandler
handlers
manager
rawEmitView
status
sid

Initializers

public init(manager: SocketManagerSpec, nsp: String)

// Create a socket for the /swift namespace

let socket = manager.socket(forNamespace: "/swift")

// Add some handlers and connect

Methods

connect(withPayload:)
connect(withPayload:timeoutAfter:withHandler:)
didConnect(toNamespace:payload:)
didDisconnect(reason:)
disconnect()
emit(_:_:completion:)
emitWithAck(_:_:)
emitAck(_:with:)
handleAck(_:data:)
handleClientEvent(_:data:)
handleEvent(_:data:isInternalMessage:withAck:)
handlePacket(_:)
leaveNamespace()
joinNamespace(withPayload:)
off(clientEvent:)
off(_:)
off(id:)
on(_:callback:)
on(clientEvent:callback:)
once(clientEvent:callback:)
once(_:callback:)
onAny(_:)
removeAllHandlers()
setReconnecting(reason:)

SocketManager

open class SocketManager : NSObject, SocketManagerSpec, SocketParsable, SocketDataBufferable, ConfigSettable

Example:

let manager = SocketManager(socketURL: URL(string:"http://localhost:8080/")!)

let defaultNamespaceSocket = manager.defaultSocket
let swiftSocket = manager.socket(forNamespace: "/swift")

// defaultNamespaceSocket and swiftSocket both share a single connection to the server

Properties

defaultSocket
socketURL
config
engine
forceNew
handleQueue
nsps
reconnects
reconnectWait
reconnectWaitMax
randomizationFactor
status
version
waitingPackets
Initializers

Initializers

init(socketURL:config:)
init(socketURL:config:)

Methods

connect()
connectSocket(_:withPayload:)
didDisconnect(reason:)
disconnect()
disconnectSocket(_:)
disconnectSocket(forNamespace:)
emitAll(clientEvent:data:)
emitAll(_:_:)
engineDidClose(reason:)
engineDidError(reason:)
engineDidOpen(reason:)
engineDidReceivePing()
engineDidSendPing()
engineDidReceivePong()
engineDidSendPong()
engineDidWebsocketUpgrade(headers:)
parseEngineMessage(_:)
parseEngineBinaryData(_:)
reconnect()
removeSocket(_:)
setConfigs(_:)
socket(forNamespace:)

goto >>> docs

上一篇下一篇

猜你喜欢

热点阅读