SocketIOClient

open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, SocketParsable

The main class for SocketIOClientSwift.

NOTE: The client is not thread/queue safe, all interaction with the socket should be done on the handleQueue

Represents a socket.io-client. Most interaction with socket.io will be through this class.

  • The engine for this client.

    Declaration

    Swift

    public private(set) var engine: SocketEngineSpec?
  • The status of this client.

    Declaration

    Swift

    public private(set) var status = SocketIOClientStatus.notConnected
  • If true then every time connect is called, a new engine will be created.

    Declaration

    Swift

    public var forceNew = false
  • The queue that all interaction with the client should occur on. This is the queue that event handlers are called on.

    Declaration

    Swift

    public var handleQueue = DispatchQueue.main
  • nsp

    The namespace for this client.

    Declaration

    Swift

    public var nsp = "/"
  • The configuration for this client.

    Declaration

    Swift

    public var config: SocketIOClientConfiguration
  • If true, this client will try and reconnect on any disconnects.

    Declaration

    Swift

    public var reconnects = true
  • The number of seconds to wait before attempting to reconnect.

    Declaration

    Swift

    public var reconnectWait = 10
  • sid

    The session id of this client.

    Declaration

    Swift

    public var sid: String?
  • The URL of the socket.io server.

    If changed after calling init, forceNew must be set to true, or it will only connect to the url set in the init.

    Declaration

    Swift

    public var socketURL: URL
  • Type safe way to create a new SocketIOClient. opts can be omitted.

    Declaration

    Swift

    public init(socketURL: URL, config: SocketIOClientConfiguration = [])
  • Not so type safe way to create a SocketIOClient, meant for Objective-C compatiblity. If using Swift it’s recommended to use init(socketURL: NSURL, options: Set<SocketIOClientOption>)

    Declaration

    Swift

    public convenience init(socketURL: NSURL, config: NSDictionary?)
  • Connect to the server.

    Declaration

    Swift

    open func connect()
  • Connect to the server. If we aren’t connected after timeoutAfter seconds, then withHandler is called.

    Declaration

    Swift

    open func connect(timeoutAfter: Double, withHandler handler: (() -> ())?)
  • Disconnects the socket.

    Declaration

    Swift

    open func disconnect()
  • Send an event to the server, with optional data items.

    If an error occurs trying to transform items into their socket representation, a SocketClientEvent.error will be emitted. The structure of the error data is [eventName, items, theError]

    Declaration

    Swift

    open func emit(_ event: String, _ items: SocketData...)
  • Same as emit, but meant for Objective-C

    Declaration

    Swift

    open func emit(_ event: String, with items: [Any])
  • Sends a message to the server, requesting an ack.

    NOTE: It is up to the server send an ack back, just calling this method does not mean the server will ack. Check that your server’s api will ack the event being sent.

    If an error occurs trying to transform items into their socket representation, a SocketClientEvent.error will be emitted. The structure of the error data is [eventName, items, theError]

    Example:

    socket.emitWithAck("myEvent", 1).timingOut(after: 1) {data in
        ...
    }
    

    Declaration

    Swift

    open func emitWithAck(_ event: String, _ items: SocketData...) -> OnAckCallback
  • Same as emitWithAck, but for Objective-C

    NOTE: It is up to the server send an ack back, just calling this method does not mean the server will ack. Check that your server’s api will ack the event being sent.

    Example:

    socket.emitWithAck("myEvent", with: [1]).timingOut(after: 1) {data in
        ...
    }
    

    Declaration

    Swift

    open func emitWithAck(_ event: String, with items: [Any]) -> OnAckCallback
  • Called when the engine closes.

    Declaration

    Swift

    open func engineDidClose(reason: String)
  • Called when the engine errors.

    Declaration

    Swift

    open func engineDidError(reason: String)
  • Called when the engine opens.

    Declaration

    Swift

    open func engineDidOpen(reason: String)
  • Causes an event to be handled, and any event handlers for that event to be called.

    Declaration

    Swift

    open func handleEvent(_ event: String, data: [Any], isInternalMessage: Bool, withAck ack: Int = -1)
  • Leaves nsp and goes back to the default namespace.

    Declaration

    Swift

    open func leaveNamespace()
  • Joins namespace.

    Do not use this to join the default namespace. Instead call leaveNamespace.

    Declaration

    Swift

    open func joinNamespace(_ namespace: String)
  • Removes handler(s) based on an event name.

    If you wish to remove a specific event, call the off(id:) with the UUID received from its on call.

    Declaration

    Swift

    open func off(_ event: String)
  • Removes a handler with the specified UUID gotten from an on or once

    If you want to remove all events for an event, call the off off(_:) method with the event name.

    Declaration

    Swift

    open func off(id: UUID)
  • Adds a handler for an event.

    Declaration

    Swift

    open func on(_ event: String, callback: @escaping NormalCallback) -> UUID
  • Adds a handler for a client event.

    Example:

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

    Declaration

    Swift

    open func on(clientEvent event: SocketClientEvent, callback: @escaping NormalCallback) -> UUID
  • Adds a single-use handler for an event.

    Declaration

    Swift

    open func once(_ event: String, callback: @escaping NormalCallback) -> UUID
  • Adds a handler that will be called on every event.

    Declaration

    Swift

    open func onAny(_ handler: @escaping (SocketAnyEvent) -> ())
  • Called when the engine has a message that must be parsed.

    Declaration

    Swift

    public func parseEngineMessage(_ msg: String)
  • Called when the engine receives binary data.

    Declaration

    Swift

    public func parseEngineBinaryData(_ data: Data)
  • Tries to reconnect to the server.

    This will cause a disconnect event to be emitted, as well as an reconnectAttempt event.

    Declaration

    Swift

    open func reconnect()
  • Removes all handlers. Can be used after disconnecting to break any potential remaining retain cycles.

    Declaration

    Swift

    open func removeAllHandlers()