require socket IO server and have it share a TCP/IP connection with the http server
Chat_server.listen function
    - Start socket IO server. It will piggy back on an existing HTTP server.
    - Handle connections by
        - Assigning a user a guest name
        - Placing a user in the 'Lobby' when they connect
    - Handle user messages
    - Handle user name changes
    - Handle room creation changes
    - List occupied rooms when user requests them.
    - Define the cleanup logic that handles user disconnection
Assign Guest Name function
  - Generate a new guest name
  - Associate the guest name with a client connection ID
  - Let the user know their guest name.
  - Add the new guest name to namesUsed cache.
  - Increment the counter used to generate guest names.
Join Room Function
    - Make user join a room
    - Let the user know they've entered a new room.
    - Broadcast to other users that a new user has entered the room.
    - Gather all the users in the room
    - Send a summery of all the users in the room.