我现在有一个项目是用 BreezeJS 建立的。 不知道 BreezeJS 内部发生了什么,但只是接受它的工作原理,我基本上通过这个简单的命令将我的项目显示在屏幕上。
export function getProjects(projectsObservable, errorObservable)
{
return breeze.EntityQuery.from("Projects")
.using(manager).execute()...then/fail.
}
我现在想让它响应使用 signalR 编辑相同项目的用户。 这意味着我此时在 javascript 端触发回调,说 guid = xxxxxxx 的对象已更改(guid 是关键)。
我如何利用 Breeze 更新项目,而无需再次查询服务器,也不会将其视为需要发送回服务器的更新。请记住,我刚刚从 signal r 那里得到了更新。
如果我一开始就可以从 signalR 集线器返回数据,我是否应该首先采取另一条路径,是否有理由创建 WebApi?使用 Breeze 而不是 WebApi 来设置它会容易吗?
最佳答案
IdeaBlade 期待就使用 SignalR 的 Breeze 应用程序提供良好的指导。
我目前的想法是,SignalR 适合通知客户感兴趣的数据发生变化,但我不会将更改后的数据传递给客户信号R。我让客户端决定是否(或不......或何时)从服务器获取更改后的数据。
我的推理基于这样一种观点,即 SignalR 应该是一种快速、轻量级的通知机制,而不是向订阅客户喷洒大量数据的消防水带,这些客户可能准备好也可能没有准备好(或愿意)应对巨大的强加给他们的变更数据量。
也许您可以详细说明为什么您有不同的想法。我当然愿意接受另一种观点。
关于javascript - SignalR 与 Breeze 相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16035397/