The tutorials only covered adding a connection ID to the group on OnConnected()
, but what about cleaning it up on OnDisconnect()
?
After a permanent loss of connectivity, a client is given a new connection ID. What happens to its old connection ID in the group list? Is it automatically cleaned up? or is it scalable enough that I don't have to worry about it?
Yes, it will work since the Microsoft documentation says that you can create 1 group per user/connection, so it depends by user limit and not group limit. So if your SignalR service can handle 40k+ users, it will handle 40k+ groups.
A SignalR connection can end in any of the following ways: If the client calls the Stop method, a stop message is sent to the server, and both client and server end the SignalR connection immediately.
Adding and removing users To add or remove users from a group, you call the Add or Remove methods, and pass in the user's connection id and group's name as parameters. You do not need to manually remove a user from a group when the connection ends.
According to the statement here, you don't need to remove connections from groups:
You should not manually remove the user from the group when the user disconnects. This action is automatically performed by the SignalR framework.
When a connection subscribes to a topic (which happens when you add the connection to a group), it receives a disposable which will remove the subscription when disposed (which means the connection isn't in the group anymore). This is triggered when a connection disconnects and is removed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With