Unlocking Real-Time Interactivity: Exploring WebSockets in Web Applications