websocket vs API rest pour des données en temps réel?
J'ai besoin, en permanence, l'accès à un serveur pour obtenir des données en temps réel des instruments financiers. Le prix est en constante évolution, donc j'ai besoin de demander de nouveaux prix de toutes les 0,5 secondes. L'Api REST de l'courtiers permettez-moi de faire cela, cependant, j'ai remarqué il y a assez peu de retard lors de la connexion au serveur. Je viens de remarquer qu'ils ont aussi des API websocket. Selon ce que j'ai lu, ils ont tous deux leurs avantages/inconvénients. Mais pour ce que je veux faire et parce que la vitesse est particulièrement important ici, de sorte que si l'API recommanderiez-vous? Est websocket vraiment plus rapide?
Merci!
Je ne sais pas pourquoi les gens votent pour fermer cette "opinion". Il y a des bonnes, logique basée sur des faits raisons pour lesquelles un webSocket est un meilleur choix pour délivrer en temps réel des données à un client qu'un appel Ajax à l'aide de REPOS. Ce n'est pas l'avis à tous - en fait, il est assez bien pourquoi les webSockets ont été conçus afin d'améliorer ou de résoudre ce problème mieux que les appels Ajax. Toutes les questions à propos de l'Un est meilleur que B ne sont pas principalement opinion. Beaucoup peut être répondu avec des faits, de la logique et de références qui ne sont pas principalement de l'opinion.
Le vote pour la rouvrir. Cette question peut être répondue sans la réponse étant "essentiellement un avis de réponse". Certains gens ici sont beaucoup trop rapide à essayer de combler quelque chose qui demande simplement si A est meilleur que B, sans comprendre que la réponse peut être fournie avec des faits, de la logique et de référence plutôt que seulement avec l'opinion. Regardez la réponse ci-dessous et demandez-vous si la réponse est "principalement d'opinion". Je ne pense pas. Il est basé sur des faits, une compréhension de la façon dont les deux options fonctionnent et comment ils peuvent être appliqués à la problématique de l'demandé à ce sujet.
OriginalL'auteur Luis Cruz | 2015-02-19
Vous devez vous connecter pour publier un commentaire.
L'opération la plus efficace pour ce que vous décrivez serait d'utiliser une connexion webSocket entre le client et le serveur et demander au serveur d'envoyer des prix mise à jour des informations directement au client sur le webSocket SEULEMENT lorsque les changements de prix par une certaine quantité ou lorsqu'une quantité minimum de temps s'est écoulé et que le prix a changé.
Cela pourrait être beaucoup plus efficace que le client n'ait à demander constamment de nouveaux changements de prix et le moment où la nouvelle information est pour le client peut être plus opportun.
Donc, si vous êtes intéressé par la façon dont rapidement les informations sur un nouveau niveau de prix obtient pour le client, un webSocket pouvez obtenir beaucoup plus en temps opportun parce que le serveur peut juste envoyer la nouvelle tarification de l'information directement au client au moment même où il les modifications sur le serveur. Alors que l'aide d'un RESTE d'appel, le client dispose d'un sondage sur certaines intervalle de temps fixe et de ne jamais obtenir de nouvelles données au moment de leur intervalle d'interrogation.
Un webSocket peut également être plus rapide et plus facile sur votre infrastructure de réseau tout simplement parce que moins d'opérations de réseau sont impliqués simplement à envoyer un paquet sur un déjà ouvert connexion webSocket rapport à la création d'une nouvelle connexion pour chaque REPOS/Ajax appel, l'envoi de nouvelles données, puis de la fermeture de la connexion. Quel point beaucoup de différence d'amélioration de ce fait dans votre application particulière serait quelque chose que vous auriez à mesure de connaître vraiment.
Mais, webSockets sont conçus pour aider avec votre scénario spécifique où un client veut savoir (comme proche du temps réel que possible) lorsque quelque chose change sur le serveur donc je pense que ce serait la meilleure modèle de conception pour ce type d'utilisation.
Voici une comparaison de la mise en réseau des activités impliquées dans l'envoi d'un changement de prix sur un déjà ouvert webSocket vs faire un appel RESTE.
webSocket
De Repos/Ajax
Comme vous pouvez le voir il y a beaucoup plus de choses dans le Reste/appel Ajax à partir d'un réseau de point de vue, car une nouvelle connexion doit être établie pour chaque nouvel appel alors que le webSocket utilise déjà un appel ouvert. En outre, dans le webSocket cas, le serveur envoie au client de nouvelles données lorsque de nouvelles données sont disponibles, le client se complique pas régulièrement la demande.
Si le prix de l'information ne change pas super souvent, le RESTE/Ajax scénario aussi souvent de "ne rien faire" des appels où le client demande une mise à jour, mais il n'y a pas de nouvelles données. Le webSocket cas n'est jamais un gaspillage cas depuis le serveur envoie juste les nouvelles données lorsqu'il est disponible.
OriginalL'auteur jfriend00