The classic socket-based application is creating a chat room. It's almost the Hello World of socket applications. The reason that a chat room is so useful for this is because it allows us to explore techniques such as sending messages to other users, reacting to messages from other users, and using rooms to separate where chats are sent.
Material design played a large part in its development over the past couple of chapters, so now is a suitable time for us to return to Bootstrap 4 and see how we can use it to lay out the interface in an Angular application. We will also work with Socket.IO at the client and the server to enable bi-directional communication. Something that has been lacking in previous chapters has been the ability to authenticate the user. In this chapter, we are going to bring in authentication support by signing up to use Auth0 (https:...