Before diving into the techniques, let's understand the problem they solve.
In a traditional web request (HTTP), the flow is simple:
This is fine for loading a webpage. But what if you want the server to tell you something without you asking first? What if new data arrives every second? That's the real-time problem.
The three solutions: