socket.io sample chat with enhancements