web-dev-qa-db-fra.com

Différences entre websockets et longues interrogations pour le serveur de jeu au tour par tour

J'écris un serveur pour un jeu iOS. Le jeu est basé sur le tour et le seul temps nécessaire au serveur pour transmettre des informations au client est de notifier le déplacement de l'adversaire.

Je suis curieux de savoir si quelqu'un pourrait commenter les performances et la facilité de mise en œuvre des différences entre l'utilisation de websockets et les longues interrogations. De plus, si j'utilisais des websockets, devrais-je l'utiliser uniquement pour recevoir des informations et envoyer des requêtes POST pour tout le reste) ou toute communication devrait-elle se faire via le websocket?

De plus, y a-t-il quelque chose à extra à considérer entre les websockets et les longues interrogations si je suis intéressé à créer un client web?

67
acidic

Qu'est-ce qu'un long sondage?

enter image description here Une variante de la technique d'interrogation traditionnelle et permet l'émulation d'une information Push d'un serveur à un client. Avec une interrogation longue, le client demande des informations au serveur de la même manière qu'une interrogation normale.

  • Si le serveur ne dispose d'aucune information pour le client, au lieu d'envoyer une réponse vide, le serveur conserve la demande et attend que certaines informations soient disponibles.
  • Une fois que les informations sont disponibles (ou après un délai approprié), une réponse complète est envoyée au client. Normalement, le client demande alors immédiatement des informations au serveur, de sorte que le serveur dispose presque toujours d'une demande en attente qu'il peut utiliser pour transmettre des données en réponse à un événement.

    Dans un contexte web/AJAX, l’interrogation longue est également appelée programmation comète .

Qu'en est-il des Websockets?

enter image description here WebSockets fournit une connexion persistante entre un client et un serveur que les deux parties peuvent utiliser pour commencer à envoyer des données à tout moment.

  • Le client établit une connexion WebSocket par le biais d'un processus appelé établissement de liaison WebSocket. Ce processus commence par l'envoi par le client d'une requête HTTP régulière au serveur.
  • Un en-tête de mise à niveau est inclus dans cette demande. Il informe le serveur que le client souhaite établir une connexion WebSocket.

Conclusion :

S'il y a un besoin de communication en temps réel, vous pouvez très bien opter pour les websockets.

Mais dans le long sondage:

Une connexion est maintenue ouverte entre le client Web et le serveur Web afin que, lorsque le serveur dispose de nouvelles informations, il puisse les transmettre au client. Cette demande est alors terminée. Une nouvelle demande est ensuite faite entre le client et le serveur, puis attend une autre mise à jour du serveur. La même connexion TCP est généralement ouverte de manière persistante lors de plusieurs demandes en raison de la persistance HTTP/1.1.

Références et autres considérations:

PubNub long polling vs sockets - autonomie de la batterie mobile

Que sont les interrogations longues, Websockets, les événements envoyés par le serveur (SSE) et Comet?

interrogation longue dans objectif-C

Introduction à Websocket

Websocket Vs Long Polling

tilisation de Websockets dans les applications

Application Websocket

PushTechnology-Long Polling

144
Tharif