Hello one solution would be to use a remote radius server in my case using free-radius which I have connected to a NodeJs back end through the JSON API. whenever i have reached the number of max user if any one tries to connect I tell him/her that there is no more room to accommodate him or she and we'll be increasing the number of possible user in the days to come (through a custom remote login page)
I think this is the most proper way.
I played with the same solution, but I write my backend using django.
Freeradius + rlm_rest + rest_server is a good mix.
BTW,
'Port-Limit' is limmiting per user concurent connection on a service port. i.e in a same hotspot-server.
If you have multiple service port (i.e multiple hotspot-server) and user can roaming ... 'port-limit' alone didn't give a good solution.