Est-ce que SignalR est la même chose que Reactive Extensions? Pouvez-vous expliquer pourquoi ou pourquoi pas?
Réponse
Trop de publicités?Non, ce ne sont vraiment pas la même chose.
Reactive Extensions est une bibliothèque permettant de créer et de composer des flux observables de données ou d'événements (qui sont en fait assez similaires). Elle ne sait en gros rien des connexions client-serveur ou autres choses. Elle se concentre uniquement sur les Observable
et est capable d'encapsuler n'importe quelle collection, flux, événement, méthode asynchrone, etc. dans l'interface commune des Observable
.
SignalR est une boîte à outils permettant de créer des connexions duplex persistantes (c'est-à-dire actives) entre le client et le serveur. Elle fonctionne via HTTP et son but est d'encapsuler 3 techniques de bas niveau: le long polling, les événements côté serveur et les web sockets dans une API de haut niveau pour un développement confortable. Ainsi, elle se concentre sur la communication.
Donc, les composants eux-mêmes sont assez indépendants les uns des autres, et ont des préoccupations complètement différentes.
En revanche, ces 2 excellentes bibliothèques se complètent mutuellement : on peut utiliser SignalR pour envoyer des événements du serveur aux clients, puis encapsuler les événements côté serveur dans les Observable
de RX pour créer des expériences utilisateur réactives complexes.
MISE À JOUR
Rx est comme LINQ, il vous aide à spécifier 'ce qui se passe', sans s'attarder sur 'comment'. SignalR est une bibliothèque pour implémenter le 'comment' pour la communication en réseau en temps réel – Paul Betts
La différence entre 'LINQ sur les objets' et RX est que dans 'LINQ sur les objets' vous extrayez les prochains éléments d'une chose énumérable, tandis que dans RX ils vous sont poussés depuis une chose observable.