J'écris un serveur pour un jeu iOS. Le jeu est au tour par tour et le seul moment où le serveur a besoin de transmettre des informations au client est de notifier le mouvement 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 la longue interrogation. 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 toutes les communications devraient-elles se faire via le websocket?
De plus, y a-t-il quelque chose à prendre en compte entre les websockets et les longs sondages si je souhaite également créer un client Web?
Réponses:
Une variante de la technique d'interrogation traditionnelle et permet l'émulation d'une information push d'un serveur vers un client. Avec une longue interrogation, le client demande des informations au serveur de la même manière qu'une interrogation normale.
Une fois que les informations sont disponibles (ou après un délai d'attente approprié), une réponse complète est envoyée au client. Le client demandera normalement alors immédiatement des informations au serveur, de sorte que le serveur aura presque toujours une demande d'attente disponible qu'il peut utiliser pour fournir des données en réponse à un événement.
Dans un contexte web / AJAX, l'interrogation longue est également connue sous le nom de programmation Comet.
Les WebSockets fournissent une connexion permanente entre un client et un serveur que les deux parties peuvent utiliser pour commencer à envoyer des données à tout moment.
Conclusion :
S'il y a un besoin de communication en temps réel, vous pouvez très bien opter pour les websockets.
Mais dans un sondage long:
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 alors 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 à travers plusieurs requêtes en raison des keep-alives HTTP / 1.1.
Références et autres considérations:
PubNub Long Polling vs Sockets - Autonomie de la batterie mobile
Que sont l'interrogation longue, les Websockets, les événements envoyés par le serveur (SSE) et la comète?
longue interrogation en objectif-C
Présentation de Websocket
Interrogation longue de Websocket Vs
Utilisation de Websockets dans les applications
Application Websocket
Interrogation longue durée de la technologie Push
la source