ObservableCollections с использованием Rx с APE / Reverse Ajax - отправка с сервера - PullRequest
2 голосов
/ 06 декабря 2011

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

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

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

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

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

Заранее спасибо. Andrew

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

1 Ответ

1 голос
/ 06 декабря 2011

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

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

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

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

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

...