@@ -56,6 +56,16 @@ public protocol SocketIOClientSpec : AnyObject {
5656
5757 /// The id of this socket.io connect. This is different from the sid of the engine.io connection.
5858 var sid : String ? { get }
59+ /// The id of this socket.io connect for connection state recovery.
60+ var pid : String ? { get }
61+
62+ /// Offset of last socket.io event for connection state recovery.
63+ var lastEventOffset : String ? { get }
64+ /// Boolean setted after connection to know if socket state is recovered or not.
65+ var recovered : Bool { get }
66+
67+ /// Array of events (or binary events) to handle when socket is connected and recover packets from server
68+ var savedEvents : [ SocketPacket ] { get }
5969
6070 /// The status of this client.
6171 var status : SocketIOStatus { get }
@@ -192,6 +202,17 @@ public protocol SocketIOClientSpec : AnyObject {
192202 /// - parameter packet: The packet to handle.
193203 func handlePacket( _ packet: SocketPacket )
194204
205+ /// Called when we get an event from socket.io
206+ /// Save it to event array if an event is sent before socket is set to connected status.
207+ /// Do not save event if pid is nil (cannot recover events from server)
208+ ///
209+ /// - parameter packet: The packet to handle.
210+ /// - parameter isInternalMessage: Whether this event was sent internally. If `true` ignore it.
211+ func saveEventPacketIfNeeded( packet: SocketPacket , isInternalMessage: Bool )
212+
213+ /// Called when socket pass to connected state, handle events if socket recover data from server
214+ func handleSavedEventPackets( )
215+
195216 /// Call when you wish to leave a namespace and disconnect this socket.
196217 func leaveNamespace( )
197218
0 commit comments