ObservableCollections с использованием Rx с APE/Reverse Ajax — отправка с сервера

Просто интересно, существует ли широко используемый метод для уведомления подписчиков (клиентов javascript) наблюдаемых коллекций (Rx/Knockout.js) об изменениях на стороне сервера.

Мне нужен объект, выполняющий двустороннюю привязку данных между коллекциями. Т.е. таблица в браузере привязана к коллекции, которая привязана к другой коллекции на сервере, которая привязана к таблице базы данных или кешированному набору данных (все они реализуют inotify...).

Теоретически это звучит возможно, но не могу найти общий способ сделать это.

Я бы не хотел использовать систему, в которой повторно отправляются целые наборы данных - я хотел бы использовать обновления на основе событий Rx или что-то подобное (может быть, как ConnectableObservable через веб-сокеты?).

Если нет, может быть, придется кодировать?

Заранее спасибо. Эндрю

(clinq, реактивный объект, веб-сокет)


person dioptre    schedule 06.12.2011    source источник


Ответы (1)


Я не знаю полного решения вашего вопроса. И я не думаю, что это имеет смысл, потому что это сильно зависит от архитектуры приложения.

Однако части решения уже существуют. Вы упомянули Rx, KnockoutJS. SQL Server также предоставляет уведомления об изменениях данных.

Интерфейсы клиент-сервер на основе событий могут быть созданы поверх SignalR. Это пакет инструментов JS+ASP.NET, который создает постоянные соединения между клиентом и сервером и позволяет отправлять события в обоих направлениях. После того, как вы его настроите, будет довольно легко написать некоторый код синхронизации над их хабами. Я полагаю, что это можно сделать с помощью RxJS довольно легко. Минус в том, что проект еще не в продакшене, хотя есть несколько достаточно крупных приложений, которые его используют. И проект выглядит очень перспективным.

Таким образом, вы можете попробовать взять эти части программного обеспечения и склеить их вместе, как вам нужно.

Надеюсь это поможет.

person Pavel Gatilov    schedule 06.12.2011
comment
Да, похоже на то, о чем я думал. http://www.amazedsaint.com/2011/11/introduction-ksigdo-knockout-signalr-to.html?m=1 имеет хорошую отправную точку. Я, пожалуй, начну с этого и займусь разработкой привязки для более сложных объектов. Насколько я могу судить, ничего не выходит из коробки. - person dioptre; 08.12.2011