socket.io-client-swift icon indicating copy to clipboard operation
socket.io-client-swift copied to clipboard

What is the proper way to update `connectPayload` on reconnection?

Open ericgroom opened this issue 1 year ago • 0 comments

So I have a client that passes auth and other info via the withPayload: parameter of SocketIOClient.connect. When I get a .reconnectAttempt client event, I want to update this payload to a new value. I see SocketIOClient stores this payload as connectPayload and passes it again, but the property is internal.

Calling SocketIOClient.connect within the event handler seems possible but like it has side effects. Same with SocketIOClient.joinNamespace. As I'm already reconnecting, I worry that calling one of these can cause a race condition in SocketManager._tryReconnect since they will call SocketManager.connect() internally before it is called in SocketManager._tryReconnect. Maybe unfounded, but nonetheless shouldn't there be a public way to update this value?

I think I can get around it by subclassing but that seems heavy handed...

ericgroom avatar Dec 09 '24 19:12 ericgroom