Coraz częściej, użytkownicy aplikacji oczekują od niej działania w czasie rzeczywistym – dotyczy to nie tylko rozmaitych komunikatorów (to przykład, który najłatwiej sobie wyobrazić), ale wszystkich aplikacji, które wyświetlają dane, mogące się często zmieniać. Użytkownik nie chce odświeżać strony/widoku tylko po to, żeby sprawdzić czy interesujące go dane się zmieniły, lub otrzymał nową wiadomość na czacie.
Można spróbować wprowadzić rozwiązania oparte na protokole HTTP, np. wysyłanie w krótkim interwale czasowym zapytania po nowe wiadomości. Łatwo sobie jednak wyobrazić, że takie podejście generuje ogromny ruch i obciąża serwer, który co chwile musi odpowiadać „Nie ma żadnej nowej wiadomości.”
Rozwiązaniem tego zagadnienia może być protokół WebSocket, zapewniający dwukierunkowy kanał komunikacji za pośrednictwem jednego gniazda TCP.