@@ -59,96 +59,155 @@ export class SocketClientService {
59
59
* @param handler The event handler
60
60
* @returns A function to unsubscribe
61
61
*/
62
- public onConnect ( handler : ConnectionHandler ) : ( ) => void {
63
- if ( ! this . socket ) return ( ) => { } ;
62
+ /**
63
+ * Registers a handler for connection events
64
+ * @param handler The event handler
65
+ * @returns An object with an unsubscribe method
66
+ */
67
+ public onConnect ( handler : ConnectionHandler ) : { unsubscribe : ( ) => void } {
68
+ if ( ! this . socket ) return { unsubscribe : ( ) => { } } ;
64
69
this . socket . on ( 'connect' , handler ) ;
65
- return ( ) => this . socket ?. off ( 'connect' , handler ) ;
70
+ return { unsubscribe : ( ) => this . socket ?. off ( 'connect' , handler ) } ;
66
71
}
67
72
68
73
/**
69
74
* Registers a handler for disconnection events
70
75
* @param handler The event handler
71
76
* @returns A function to unsubscribe
72
77
*/
73
- public onDisconnect ( handler : ( reason : string ) => void ) : ( ) => void {
74
- if ( ! this . socket ) return ( ) => { } ;
78
+ /**
79
+ * Registers a handler for disconnection events
80
+ * @param handler The event handler
81
+ * @returns An object with an unsubscribe method
82
+ */
83
+ public onDisconnect ( handler : ( reason : string ) => void ) : {
84
+ unsubscribe : ( ) => void ;
85
+ } {
86
+ if ( ! this . socket ) return { unsubscribe : ( ) => { } } ;
75
87
this . socket . on ( 'disconnect' , handler ) ;
76
- return ( ) => this . socket ?. off ( 'disconnect' , handler ) ;
88
+ return { unsubscribe : ( ) => this . socket ?. off ( 'disconnect' , handler ) } ;
77
89
}
78
90
79
91
/**
80
92
* Registers a handler for connection error events
81
93
* @param handler The event handler
82
94
* @returns A function to unsubscribe
83
95
*/
84
- public onConnectError ( handler : ErrorHandler ) : ( ) => void {
85
- if ( ! this . socket ) return ( ) => { } ;
96
+ /**
97
+ * Registers a handler for connection error events
98
+ * @param handler The event handler
99
+ * @returns An object with an unsubscribe method
100
+ */
101
+ public onConnectError ( handler : ErrorHandler ) : { unsubscribe : ( ) => void } {
102
+ if ( ! this . socket ) return { unsubscribe : ( ) => { } } ;
86
103
this . socket . on ( 'connect_error' , handler ) ;
87
- return ( ) => this . socket ?. off ( 'connect_error' , handler ) ;
104
+ return { unsubscribe : ( ) => this . socket ?. off ( 'connect_error' , handler ) } ;
88
105
}
89
106
90
107
/**
91
108
* Registers a handler for connection timeout events
92
109
* @param handler The event handler
93
110
* @returns A function to unsubscribe
94
111
*/
95
- public onConnectTimeout ( handler : ConnectionHandler ) : ( ) => void {
96
- if ( ! this . socket ) return ( ) => { } ;
112
+ /**
113
+ * Registers a handler for connection timeout events
114
+ * @param handler The event handler
115
+ * @returns An object with an unsubscribe method
116
+ */
117
+ public onConnectTimeout ( handler : ConnectionHandler ) : {
118
+ unsubscribe : ( ) => void ;
119
+ } {
120
+ if ( ! this . socket ) return { unsubscribe : ( ) => { } } ;
97
121
this . socket . on ( 'connect_timeout' , handler ) ;
98
- return ( ) => this . socket ?. off ( 'connect_timeout' , handler ) ;
122
+ return { unsubscribe : ( ) => this . socket ?. off ( 'connect_timeout' , handler ) } ;
99
123
}
100
124
101
125
/**
102
126
* Registers a handler for reconnection events
103
127
* @param handler The event handler
104
128
* @returns A function to unsubscribe
105
129
*/
106
- public onReconnect ( handler : ( attempt : number ) => void ) : ( ) => void {
107
- if ( ! this . socket ) return ( ) => { } ;
130
+ /**
131
+ * Registers a handler for reconnection events
132
+ * @param handler The event handler
133
+ * @returns An object with an unsubscribe method
134
+ */
135
+ public onReconnect ( handler : ( attempt : number ) => void ) : {
136
+ unsubscribe : ( ) => void ;
137
+ } {
138
+ if ( ! this . socket ) return { unsubscribe : ( ) => { } } ;
108
139
this . socket . on ( 'reconnect' , handler ) ;
109
- return ( ) => this . socket ?. off ( 'reconnect' , handler ) ;
140
+ return { unsubscribe : ( ) => this . socket ?. off ( 'reconnect' , handler ) } ;
110
141
}
111
142
112
143
/**
113
144
* Registers a handler for reconnection attempt events
114
145
* @param handler The event handler
115
146
* @returns A function to unsubscribe
116
147
*/
117
- public onReconnectAttempt ( handler : ( attempt : number ) => void ) : ( ) => void {
118
- if ( ! this . socket ) return ( ) => { } ;
148
+ /**
149
+ * Registers a handler for reconnection attempt events
150
+ * @param handler The event handler
151
+ * @returns An object with an unsubscribe method
152
+ */
153
+ public onReconnectAttempt ( handler : ( attempt : number ) => void ) : {
154
+ unsubscribe : ( ) => void ;
155
+ } {
156
+ if ( ! this . socket ) return { unsubscribe : ( ) => { } } ;
119
157
this . socket . on ( 'reconnect_attempt' , handler ) ;
120
- return ( ) => this . socket ?. off ( 'reconnect_attempt' , handler ) ;
158
+ return {
159
+ unsubscribe : ( ) => this . socket ?. off ( 'reconnect_attempt' , handler ) ,
160
+ } ;
121
161
}
122
162
123
163
/**
124
164
* Registers a handler for reconnection error events
125
165
* @param handler The event handler
126
166
* @returns A function to unsubscribe
127
167
*/
128
- public onReconnectError ( handler : ErrorHandler ) : ( ) => void {
129
- if ( ! this . socket ) return ( ) => { } ;
168
+ /**
169
+ * Registers a handler for reconnection error events
170
+ * @param handler The event handler
171
+ * @returns An object with an unsubscribe method
172
+ */
173
+ public onReconnectError ( handler : ErrorHandler ) : { unsubscribe : ( ) => void } {
174
+ if ( ! this . socket ) return { unsubscribe : ( ) => { } } ;
130
175
this . socket . on ( 'reconnect_error' , handler ) ;
131
- return ( ) => this . socket ?. off ( 'reconnect_error' , handler ) ;
176
+ return { unsubscribe : ( ) => this . socket ?. off ( 'reconnect_error' , handler ) } ;
132
177
}
133
178
134
179
/**
135
180
* Registers a handler for reconnection failed events
136
181
* @param handler The event handler
137
182
* @returns A function to unsubscribe
138
183
*/
139
- public onReconnectFailed ( handler : ConnectionHandler ) : ( ) => void {
140
- if ( ! this . socket ) return ( ) => { } ;
184
+ /**
185
+ * Registers a handler for reconnection failed events
186
+ * @param handler The event handler
187
+ * @returns An object with an unsubscribe method
188
+ */
189
+ public onReconnectFailed ( handler : ConnectionHandler ) : {
190
+ unsubscribe : ( ) => void ;
191
+ } {
192
+ if ( ! this . socket ) return { unsubscribe : ( ) => { } } ;
141
193
this . socket . on ( 'reconnect_failed' , handler ) ;
142
- return ( ) => this . socket ?. off ( 'reconnect_failed' , handler ) ;
194
+ return { unsubscribe : ( ) => this . socket ?. off ( 'reconnect_failed' , handler ) } ;
143
195
}
144
196
145
197
/**
146
198
* Starts a periodic ping to check connection health
147
199
* @param interval The ping interval in milliseconds
148
200
* @returns A function to stop the ping
149
201
*/
150
- public startPingInterval ( interval : number = 30000 ) : ( ) => void {
151
- if ( ! this . socket ) return ( ) => { } ;
202
+ /**
203
+ * Starts a periodic ping to check connection health
204
+ * @param interval The ping interval in milliseconds
205
+ * @returns An object with an unsubscribe method to stop the ping
206
+ */
207
+ public startPingInterval ( interval : number = 30000 ) : {
208
+ unsubscribe : ( ) => void ;
209
+ } {
210
+ if ( ! this . socket ) return { unsubscribe : ( ) => { } } ;
152
211
153
212
const pingInterval = setInterval ( ( ) => {
154
213
if ( this . socket ?. connected ) {
@@ -164,7 +223,7 @@ export class SocketClientService {
164
223
}
165
224
} , interval ) ;
166
225
167
- return ( ) => clearInterval ( pingInterval ) ;
226
+ return { unsubscribe : ( ) => clearInterval ( pingInterval ) } ;
168
227
}
169
228
170
229
/**
@@ -242,9 +301,18 @@ export class SocketClientService {
242
301
* @param handler The event handler
243
302
* @returns A function to unsubscribe
244
303
*/
245
- protected on < T > ( event : string , handler : ( data : T ) => void ) : ( ) => void {
246
- if ( ! this . socket ) return ( ) => { } ;
304
+ /**
305
+ * Registers a handler for an event
306
+ * @param event The event name
307
+ * @param handler The event handler
308
+ * @returns An object with an unsubscribe method
309
+ */
310
+ protected on < T > (
311
+ event : string ,
312
+ handler : ( data : T ) => void ,
313
+ ) : { unsubscribe : ( ) => void } {
314
+ if ( ! this . socket ) return { unsubscribe : ( ) => { } } ;
247
315
this . socket . on ( event , handler ) ;
248
- return ( ) => this . socket ?. off ( event , handler ) ;
316
+ return { unsubscribe : ( ) => this . socket ?. off ( event , handler ) } ;
249
317
}
250
318
}
0 commit comments