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?
Qu'est-ce qu'un long sondage?
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.
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?
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.
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
interrogation longue dans objectif-C