Librerie come socket.IO sono necessarie quando abbiamo bisogno di tempo reale nella nostra app. Lascia che ti spieghi questo in modo più dettagliato. Supponiamo che tu stia sviluppando un gioco, che è multiplayer e 2 o più utenti possono giocare contemporaneamente. Quindi in questo caso non effettuerai chiamate HTTP o HTTPS per diversi motivi e uno di questi è che le loro dimensioni dei pacchetti sono grandi e altre che queste chiamate sono molto lente. In tali scenari utilizziamo librerie come socket per inviare e ricevere dati da e verso il server. i socket sono veramente veloci e sono in grado di inviare solo quei pacchetti di dati che sono necessari. usando la programmazione HTTP non puoi mai creare alcun gioco multiplayer o qualsiasi app che interagirà con il server in tempo reale.
lascia fare un altro esempio. Supponiamo che tu stia lavorando su un'applicazione di chat. quando l'utente A sta scrivendo qualcosa allora l'utente B dovrebbe sapere che A sta scrivendo, (simile a gtalk di facebook messenger). Se userete le chiamate HTTP in quel momento, "B" non potrà mai vedere lo stato effettivo di un'altra persona a causa del ritardo. quindi quello che possiamo usare sono i socket che quindi l'utente A sta digitando qualcosa, quindi il suo dispositivo invierà solo un pacchetto di dati che notificherà semplicemente al server che sta digitando e verrà consegnato all'utente B, questo processo è molto veloce (quasi in tempo reale) . e ridurrà anche il trasferimento dei dati.
fonte
2013-09-03 08:41:33
Socket.IO è un "boilerplate" molto bello in cima a NodeJS. Usa websocket quando disponibili e ha alcuni metodi di backup se non disponibili. Ti aiuta a scrivere meno codice, che è più disponibile attraverso tutti i browser. – Schoening