SocketIOClientSpec
public protocol SocketIOClientSpec : AnyObject
Defines the interface for a SocketIOClient.
-
A handler that will be called on any event.
Declaration
Swift
var anyHandler: ((SocketAnyEvent) -> ())? { get }
-
The array of handlers for this socket.
Declaration
Swift
var handlers: [SocketEventHandler] { get }
-
The manager for this socket.
Declaration
Swift
var manager: SocketManagerSpec? { get }
-
The namespace that this socket is currently connected to.
Must start with a
/
.Declaration
Swift
var nsp: String { get }
-
A view into this socket where emits do not check for binary data.
Usage:
socket.rawEmitView.emit("myEvent", myObject)
NOTE: It is not safe to hold on to this view beyond the life of the socket.
Declaration
Swift
var rawEmitView: SocketRawView { get }
-
The id of this socket.io connect. This is different from the sid of the engine.io connection.
Declaration
Swift
var sid: String? { get }
-
The status of this client.
Declaration
Swift
var status: SocketIOStatus { get }
-
Connect to the server. The same as calling
connect(timeoutAfter:withHandler:)
with a timeout of 0.Only call after adding your event listeners, unless you know what you’re doing.
Declaration
Swift
func connect(withPayload payload: [String : Any]?)
Parameters
payload
An optional payload sent on connect
-
Connect to the server. If we aren’t connected after
timeoutAfter
seconds, thenwithHandler
is called.Only call after adding your event listeners, unless you know what you’re doing.
Declaration
Swift
func connect(withPayload payload: [String : Any]?, timeoutAfter: Double, withHandler handler: (() -> ())?)
Parameters
withPayload
An optional payload sent on connect
timeoutAfter
The number of seconds after which if we are not connected we assume the connection has failed. Pass 0 to never timeout.
handler
The handler to call when the client fails to connect.
-
Called when the client connects to a namespace. If the client was created with a namespace upfront, then this is only called when the client connects to that namespace.
Declaration
Swift
func didConnect(toNamespace namespace: String, payload: [String : Any]?)
Parameters
toNamespace
The namespace that was connected to.
-
Called when the client has disconnected from socket.io.
Declaration
Swift
func didDisconnect(reason: String)
Parameters
reason
The reason for the disconnection.
-
didError(reason:
Default implementation) Called when the client encounters an error.
Default Implementation
Default implementation.
Declaration
Swift
func didError(reason: String)
Parameters
reason
The reason for the disconnection.
-
Disconnects the socket.
Declaration
Swift
func disconnect()
-
Send an event to the server, with optional data items and optional write completion handler.
If an error occurs trying to transform
items
into their socket representation, aSocketClientEvent.error
will be emitted. The structure of the error data is[eventName, items, theError]
Declaration
Swift
func emit(_ event: String, _ items: SocketData..., completion: (() -> ())?)
Parameters
event
The event to send.
items
The items to send with this event. May be left out.
completion
Callback called on transport write completion.
-
Call when you wish to tell the server that you’ve received the event for
ack
.Declaration
Swift
func emitAck(_ ack: Int, with items: [Any])
Parameters
ack
The ack number.
with
The data for this ack.
-
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, aSocketClientEvent.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
func emitWithAck(_ event: String, _ items: SocketData...) -> OnAckCallback
Parameters
event
The event to send.
items
The items to send with this event. May be left out.
Return Value
An
OnAckCallback
. You must call thetimingOut(after:)
method before the event will be sent. -
Called when socket.io has acked one of our emits. Causes the corresponding ack callback to be called.
Declaration
Swift
func handleAck(_ ack: Int, data: [Any])
Parameters
ack
The number for this ack.
data
The data sent back with this ack.
-
Called on socket.io specific events.
Declaration
Swift
func handleClientEvent(_ event: SocketClientEvent, data: [Any])
Parameters
event
The
SocketClientEvent
.data
The data for this event.
-
Called when we get an event from socket.io.
Declaration
Swift
func handleEvent(_ event: String, data: [Any], isInternalMessage: Bool, withAck ack: Int)
Parameters
event
The name of the event.
data
The data that was sent with this event.
isInternalMessage
Whether this event was sent internally. If
true
it is always sent to handlers.ack
If > 0 then this event expects to get an ack back from the client.
-
Causes a client to handle a socket.io packet. The namespace for the packet must match the namespace of the socket.
Declaration
Swift
func handlePacket(_ packet: SocketPacket)
Parameters
packet
The packet to handle.
-
Call when you wish to leave a namespace and disconnect this socket.
Declaration
Swift
func leaveNamespace()
-
Joins
nsp
. You shouldn’t need to call this directly, instead callconnect
.Declaration
Swift
func joinNamespace(withPayload payload: [String : Any]?)
Parameters
withPayload
The payload to connect when joining this namespace
-
Removes handler(s) for a client event.
If you wish to remove a client event handler, call the
off(id:)
with the UUID received from itson
call.Declaration
Swift
func off(clientEvent event: SocketClientEvent)
Parameters
clientEvent
The event to remove handlers for.
-
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 itson
call.Declaration
Swift
func off(_ event: String)
Parameters
event
The event to remove handlers for.
-
Removes a handler with the specified UUID gotten from an
on
oronce
If you want to remove all events for an event, call the off
off(_:)
method with the event name.Declaration
Swift
func off(id: UUID)
Parameters
id
The UUID of the handler you wish to remove.
-
Adds a handler for an event.
Declaration
Swift
func on(_ event: String, callback: @escaping NormalCallback) -> UUID
Parameters
event
The event name for this handler.
callback
The callback that will execute when this event is received.
Return Value
A unique id for the handler that can be used to remove it.
-
Adds a handler for a client event.
Example:
socket.on(clientEvent: .connect) {data, ack in ... }
Declaration
Swift
func on(clientEvent event: SocketClientEvent, callback: @escaping NormalCallback) -> UUID
Parameters
event
The event for this handler.
callback
The callback that will execute when this event is received.
Return Value
A unique id for the handler that can be used to remove it.
-
Adds a single-use handler for a client event.
Declaration
Swift
func once(clientEvent event: SocketClientEvent, callback: @escaping NormalCallback) -> UUID
Parameters
clientEvent
The event for this handler.
callback
The callback that will execute when this event is received.
Return Value
A unique id for the handler that can be used to remove it.
-
Adds a single-use handler for an event.
Declaration
Swift
func once(_ event: String, callback: @escaping NormalCallback) -> UUID
Parameters
event
The event name for this handler.
callback
The callback that will execute when this event is received.
Return Value
A unique id for the handler that can be used to remove it.
-
Adds a handler that will be called on every event.
Declaration
Swift
func onAny(_ handler: @escaping (SocketAnyEvent) -> ())
Parameters
handler
The callback that will execute whenever an event is received.
-
Removes all handlers.
Can be used after disconnecting to break any potential remaining retain cycles.
Declaration
Swift
func removeAllHandlers()
-
Puts the socket back into the connecting state. Called when the manager detects a broken connection, or when a manual reconnect is triggered.
parameter reason: The reason this socket is going reconnecting.
Declaration
Swift
func setReconnecting(reason: String)