ObservableCollections с использованием Rx с APE/Reverse Ajax - отправка с сервера
Просто интересно, существует ли обычно используемый метод для уведомления подписчиков (клиентов javascript) о наблюдаемых коллекциях (Rx/Knockout.js) об изменениях на стороне сервера.
Я хотел бы иметь объект, который выполняет двустороннее связывание данных между коллекциями. То есть. таблица в браузере связана с коллекцией, которая связана с другой коллекцией на сервере, которая связана с таблицей базы данных или кэшированным набором данных (все реализуют inotify...).
Теоретически это звучит возможно, но не может найти какой-либо общий способ сделать это.
Я не хотел бы использовать систему, в которой повторно отправлялись целые наборы данных - я хотел бы использовать основанные на событиях обновления Rx или что-то подобное (возможно, как ConnectableObservable через веб-сокеты?).
Если нет, то, возможно, придется его кодировать?
Заранее спасибо. Эндрю
(clinq, реактивный объект, websocket)
1 ответ
Я не знаю о полном решении вашего вопроса. И я не думаю, что это имеет смысл, потому что это сильно зависит от архитектуры приложения.
Однако части решения уже существуют. Вы упомянули Rx, KnockoutJS. SQL Server также предоставляет уведомления об изменениях данных.
Основанные на событиях клиент-серверные интерфейсы могут быть построены поверх SignalR. Это пакет инструментов JS+ASP.NET, который создает постоянные соединения между клиентом и сервером и позволяет отправлять события в обоих направлениях. После того, как вы его настроите, должно быть довольно легко написать некоторый код синхронизации над их концентраторами. Я полагаю, это может быть сделано с использованием RxJS довольно легко. Недостатком является то, что проект еще не находится в рабочем состоянии, хотя есть несколько довольно крупных приложений, которые его используют. И проект выглядит очень перспективным.
Таким образом, вы можете попытаться взять эти части программного обеспечения и склеить их, как вам нужно.
Надеюсь это поможет.