Added client emit methods with array parameters

This commit is contained in:
Erasov Ivan 2021-02-05 19:14:54 +03:00
parent 6b80f75ec8
commit c015012783
2 changed files with 68 additions and 0 deletions

View File

@ -212,6 +212,19 @@ open class SocketIOClient: NSObject, SocketIOClientSpec {
/// - parameter items: The items to send with this event. May be left out. /// - parameter items: The items to send with this event. May be left out.
/// - parameter completion: Callback called on transport write completion. /// - parameter completion: Callback called on transport write completion.
open func emit(_ event: String, _ items: SocketData..., completion: (() -> ())? = nil) { open func emit(_ event: String, _ items: SocketData..., completion: (() -> ())? = nil) {
emit(event, items, completion: completion)
}
/// 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, a `SocketClientEvent.error`
/// will be emitted. The structure of the error data is `[eventName, items, theError]`
///
/// - parameter event: The event to send.
/// - parameter items: The items to send with this event. May be left out.
/// - parameter completion: Callback called on transport write completion.
open func emit(_ event: String, _ items: [SocketData], completion: (() -> ())?) {
do { do {
emit([event] + (try items.map({ try $0.socketRepresentation() })), completion: completion) emit([event] + (try items.map({ try $0.socketRepresentation() })), completion: completion)
} catch { } catch {
@ -242,6 +255,30 @@ open class SocketIOClient: NSObject, SocketIOClientSpec {
/// - parameter items: The items to send with this event. May be left out. /// - parameter items: The items to send with this event. May be left out.
/// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent. /// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent.
open func emitWithAck(_ event: String, _ items: SocketData...) -> OnAckCallback { open func emitWithAck(_ event: String, _ items: SocketData...) -> OnAckCallback {
emitWithAck(event, items)
}
/// 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:
///
/// ```swift
/// socket.emitWithAck("myEvent", 1).timingOut(after: 1) {data in
/// ...
/// }
/// ```
///
/// - parameter event: The event to send.
/// - parameter items: The items to send with this event. May be left out.
/// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent.
open func emitWithAck(_ event: String, _ items: [SocketData]) -> OnAckCallback {
do { do {
return createOnAck([event] + (try items.map({ try $0.socketRepresentation() }))) return createOnAck([event] + (try items.map({ try $0.socketRepresentation() })))
} catch { } catch {

View File

@ -108,6 +108,16 @@ public protocol SocketIOClientSpec : AnyObject {
/// - parameter completion: Callback called on transport write completion. /// - parameter completion: Callback called on transport write completion.
func emit(_ event: String, _ items: SocketData..., completion: (() -> ())?) func emit(_ event: String, _ items: SocketData..., completion: (() -> ())?)
/// 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, a `SocketClientEvent.error`
/// will be emitted. The structure of the error data is `[eventName, items, theError]`
///
/// - parameter event: The event to send.
/// - parameter items: The items to send with this event. May be left out.
/// - parameter completion: Callback called on transport write completion.
func emit(_ event: String, _ items: [SocketData], completion: (() -> ())?)
/// Call when you wish to tell the server that you've received the event for `ack`. /// Call when you wish to tell the server that you've received the event for `ack`.
/// ///
/// - parameter ack: The ack number. /// - parameter ack: The ack number.
@ -135,6 +145,27 @@ public protocol SocketIOClientSpec : AnyObject {
/// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent. /// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent.
func emitWithAck(_ event: String, _ items: SocketData...) -> OnAckCallback func emitWithAck(_ event: String, _ items: SocketData...) -> OnAckCallback
/// 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:
///
/// ```swift
/// socket.emitWithAck("myEvent", 1).timingOut(after: 1) {data in
/// ...
/// }
/// ```
///
/// - parameter event: The event to send.
/// - parameter items: The items to send with this event. May be left out.
/// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent.
func emitWithAck(_ event: String, _ items: [SocketData]) -> OnAckCallback
/// Called when socket.io has acked one of our emits. Causes the corresponding ack callback to be called. /// Called when socket.io has acked one of our emits. Causes the corresponding ack callback to be called.
/// ///
/// - parameter ack: The number for this ack. /// - parameter ack: The number for this ack.