我有一个项目,我现在已经与BreezeJS建立。 不知道BreezeJS里面发生了什么,只是接受了它的工作原理,基本上我从屏幕上显示了这些简单的命令。SignalR结合微风
export function getProjects(projectsObservable, errorObservable)
{
return breeze.EntityQuery.from("Projects")
.using(manager).execute()...then/fail.
}
我现在想让它对使用signalR编辑相同项目的用户做出响应。 这意味着我在这一点上有回调被发射在JavaScript结束说,与guid = xxxxxxx对象已经改变(GUID是关键)。
如何在无需再次查询服务器的情况下点击进入Breeze更新项目,也不会将其视为需要发送回服务器的更新。 Remmeber,我刚从信号r得到更新。
我应该在第一个地方采取了另一个路径,是否有理由创建一个WebApi,如果我可以在开始时从signalR集线器返回数据?用Breeze而不是WebApi来设置它会很容易吗?
首先,这将是简单和快速的发展。只需将其与信号器连接即可推送数据。但是你是绝对正确的,让客户决定何时获得实际数据可能会更好。我会觉得多一点关于它,如果我改变了主意,我的第一个想法是更好的比你的话,我会让你知道:) –
我有CQRS的兴起这种观点是不唯一正确观点的话。如果我正在向我的服务器发出获取命令(最终向我发送事件/或完整读取模型),那么signalr是一个出色的异步事件和对象传递机制。 – Damian
事实上,这将是一个伟大的功能,同样的原因微风变更是 - 最小化到服务器roudrips的数量。如果你只使用通知(其心不是免费要么)signalr你仍然需要获取所有更改的对象客户兴趣通过网络API/OData的和在平凡的情况下,它可能需要几个要么请求或获取专用方法一次性的变化反过来又不能灵活/通用。我的观点是 - 有一种方法可以(可选地)将更改集不仅传播到服务器,而且还传播到订阅客户端。 –