Found out socket.io has some internal issues with client ids and general session handling. Used my own implementation to generate UUIDs which will be used as client ids going forward (they should be more unique and random as well). Guarded against connections that might not have had the URL sent (potentially custom crafted connections). Changed the internal implementations of the user and tracker classes to accommodate for the new type of user id.
Added documentation and cleaned up some code