SocketEngine

open class SocketEngine:
        NSObject, WebSocketDelegate, URLSessionDelegate, SocketEnginePollable, SocketEngineWebsocket, ConfigSettable

The class that handles the engine.io protocol and transports. See SocketEnginePollable and SocketEngineWebsocket for transport specific methods.

Properties

  • The queue that all engine actions take place on.

    Declaration

    Swift

    public let engineQueue: DispatchQueue
  • The connect parameters sent during a connect.

    Declaration

    Swift

    public var connectParams: [String : Any]? { get set }
  • A dictionary of extra http headers that will be set during connection.

    Declaration

    Swift

    public var extraHeaders: [String : String]?
  • A queue of engine.io messages waiting for POSTing

    You should not touch this directly

    Declaration

    Swift

    public var postWait: [Post]
  • true if there is an outstanding poll. Trying to poll before the first is done will cause socket.io to disconnect us.

    Do not touch this directly

    Declaration

    Swift

    public var waitingForPoll: Bool
  • true if there is an outstanding post. Trying to post before the first is done will cause socket.io to disconnect us.

    Do not touch this directly

    Declaration

    Swift

    public var waitingForPost: Bool
  • true if this engine is closed.

    Declaration

    Swift

    public private(set) var closed: Bool { get }
  • If true the engine will attempt to use WebSocket compression.

    Declaration

    Swift

    public private(set) var compress: Bool { get }
  • true if this engine is connected. Connected means that the initial poll connect has succeeded.

    Declaration

    Swift

    public private(set) var connected: Bool { get }
  • An array of HTTPCookies that are sent during the connection.

    Declaration

    Swift

    public private(set) var cookies: [HTTPCookie]? { get }
  • When true, the engine is in the process of switching to WebSockets.

    Do not touch this directly

    Declaration

    Swift

    public private(set) var fastUpgrade: Bool { get }
  • When true, the engine will only use HTTP long-polling as a transport.

    Declaration

    Swift

    public private(set) var forcePolling: Bool { get }
  • When true, the engine will only use WebSockets as a transport.

    Declaration

    Swift

    public private(set) var forceWebsockets: Bool { get }
  • true If engine’s session has been invalidated.

    Declaration

    Swift

    public private(set) var invalidated: Bool { get }
  • If true, the engine is currently in HTTP long-polling mode.

    Declaration

    Swift

    public private(set) var polling: Bool { get }
  • If true, the engine is currently seeing whether it can upgrade to WebSockets.

    Declaration

    Swift

    public private(set) var probing: Bool { get }
  • The URLSession that will be used for polling.

    Declaration

    Swift

    public private(set) var session: URLSession? { get }
  • sid

    The session id for this engine.

    Declaration

    Swift

    public private(set) var sid: String { get }
  • The path to engine.io.

    Declaration

    Swift

    public private(set) var socketPath: String { get }
  • The url for polling.

    Declaration

    Swift

    public private(set) var urlPolling: URL { get }
  • The url for WebSockets.

    Declaration

    Swift

    public private(set) var urlWebSocket: URL { get }
  • The version of engine.io being used. Default is three.

    Declaration

    Swift

    public private(set) var version: SocketIOVersion { get }
  • If true, then the engine is currently in WebSockets mode.

    Declaration

    Swift

    @available(*, deprecated, message: "No longer needed, if we're not polling, then we must be doing websockets")
    public private(set) var websocket: Bool { get }
  • When true, the WebSocket stream will be configured with the enableSOCKSProxy true.

    Declaration

    Swift

    public private(set) var enableSOCKSProxy: Bool { get }
  • ws

    The WebSocket for this engine.

    Declaration

    Swift

    public private(set) var ws: WebSocket? { get }
  • Whether or not the WebSocket is currently connected.

    Declaration

    Swift

    public private(set) var wsConnected: Bool { get }
  • The client for this engine.

    Declaration

    Swift

    public weak var client: SocketEngineClient?

Initializers

  • Creates a new engine.

    Declaration

    Swift

    public init(client: SocketEngineClient, url: URL, config: SocketIOClientConfiguration)

    Parameters

    client

    The client for this engine.

    url

    The url for this engine.

    config

    An array of configuration options for this engine.

  • Creates a new engine.

    Declaration

    Swift

    public required convenience init(client: SocketEngineClient, url: URL, options: [String : Any]?)

    Parameters

    client

    The client for this engine.

    url

    The url for this engine.

    options

    The options for this engine.

Methods

  • Starts the connection to the server.

    Declaration

    Swift

    open func connect()
  • Called when an error happens during execution. Causes a disconnection.

    Declaration

    Swift

    open func didError(reason: String)
  • Disconnects from the server.

    Declaration

    Swift

    open func disconnect(reason: String)

    Parameters

    reason

    The reason for the disconnection. This is communicated up to the client.

  • Called to switch from HTTP long-polling to WebSockets. After calling this method the engine will be in WebSocket mode.

    You shouldn’t call this directly

    Declaration

    Swift

    open func doFastUpgrade()
  • Causes any packets that were waiting for POSTing to be sent through the WebSocket. This happens because when the engine is attempting to upgrade to WebSocket it does not do any POSTing.

    You shouldn’t call this directly

    Declaration

    Swift

    open func flushWaitingForPostToWebSocket()
  • Parses raw binary received from engine.io.

    Declaration

    Swift

    open func parseEngineData(_ data: Data)

    Parameters

    data

    The data to parse.

  • Parses a raw engine.io packet.

    Declaration

    Swift

    open func parseEngineMessage(_ message: String)

    Parameters

    message

    The message to parse.

  • Called when the engine should set/update its configs from a given configuration.

    parameter config: The SocketIOClientConfiguration that should be used to set/update configs.

    Declaration

    Swift

    open func setConfigs(_ config: SocketIOClientConfiguration)
  • Writes a message to engine.io, independent of transport.

    Declaration

    Swift

    open func write(_ msg: String, withType type: SocketEnginePacketType, withData data: [Data], completion: (() -> ())? = nil)

    Parameters

    msg

    The message to send.

    type

    The type of this message.

    data

    Any data that this message has.

    completion

    Callback called on transport write completion.

URLSessionDelegate methods