Comment NodeJS gère-t-il des connexions persistantes sans WebSockets?

Je suis vraiment nouveau pour NodeJS (et je suis désolé si je ressens ingénaire à propos de certaines choses) et j'ai creusé dans le code source de l'exemple d' application de chat .

Cependant, j'ai du mal à comprendre une chose. Je sais que WebSockets aide à gérer les connexions bidirectionnelles full-duplex persistantes. Mais comment NodeJS gère-t-il une connexion persistante dans l'application de discussion susmentionnée sans l'utilisation de WebSockets? Et si NodeJS peut gérer une connexion bidirectionnelle persistante, quelle est exactement la fonction d'intégrer quelque chose comme Socket.IO dans Node?

Outre les WebSockets, vous pouvez utiliser une technique de vote longue pour créer une connexion persistante entre le serveur et le client.

Le sondage long est une variation de la technique de vote traditionnelle et permet l'émulation d'une transmission d'informations d'un serveur à un client. Avec un sondage long, le client demande des informations du serveur de manière similaire à un sondage normal. Toutefois, si le serveur n'a pas d'informations disponibles pour le client, au lieu d'envoyer une réponse vide, le serveur détient la demande et attend de l'information disponible. Une fois l'information disponible (ou après un délai d'attente approprié), une réponse complète est envoyée au client.

Cependant, ce n'est pas aussi efficace que WebSockets, mais il est utilisé car il fonctionne dans tous les navigateurs, contrairement à WebSockets. Essayez d'examiner cet article :

Réduire les kilobytes de données à 2 octets … et réduire la latence de 150ms à 50ms est beaucoup plus que marginal. En fait, ces deux facteurs sont suffisants pour rendre WebSocket sérieusement intéressant pour Google.

Je ne suis pas familier avec l'application de chat. Et je ne vois pas un lien pour une démo hébergée.

NodeJS est une technologie côté serveur. Il n'y a aucun problème avec les prises natives. Socket.IO est une combinaison de la technologie client et du côté serveur. Il arrive simplement d'utiliser NodeJS pour le côté serveur. La beauté est qu'il présente une API de communication commune du côté du client, quel que soit le type de fonctionnalité du navigateur.