Подтвердить что ты не робот

SignalR против реактивных расширений

Является ли SignalR тем же самым, что и Reactive Extensions? Можете ли вы объяснить, почему или почему нет?

4b9b3361

Ответ 1

Нет, они абсолютно не то же самое.

Reactive Extensions - это библиотека для создания и составления наблюдаемых потоков данных или событий (которые на самом деле очень похожи). Он ничего не знает о связях клиент-сервер или о других вещах. Он ориентирован исключительно на Observable и способен обертывать любую коллекцию, поток, событие, асинхронный метод и т.д. В общий интерфейс Observable.

SignalR - это инструментарий для создания постоянных (то есть живых) дуплексных соединений между клиентом и сервером. Он работает через HTTP, и его цель состоит в том, чтобы обернуть три низкоуровневых метода: длительный опрос, события на стороне сервера и веб-сокеты в API высокого уровня для удобной разработки. Поэтому он сосредоточился на сообщении.

Итак, сами компоненты совершенно независимы друг от друга, и они имеют совершенно разные проблемы.

С другой стороны, эти две большие библиотеки дополняют друг друга: можно использовать SignalR для передачи событий от сервера к клиентам, а затем переносить события на стороне сервера в RX Observable для создания сложных реактивных пользовательских опытов.

UPDATE

Rx похож на LINQ, он помогает вам указать "что происходит", он не входит в детали "как". SignalR - это библиотека для реализации "способа" для сетевого общения в реальном времени - Paul Betts

Разница между "LINQ to Objects" и RX заключается в том, что в "LINQ to Objects" вы вытаскиваете следующие элементы из перечислимой вещи, а в RX их отталкивают от наблюдаемой вещи.