我有一個項目,我現在已經與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的和在平凡的情況下,它可能需要幾個要麼請求或獲取專用方法一次性的變化反過來又不能靈活/通用。我的觀點是 - 有一種方法可以(可選地)將更改集不僅傳播到服務器,而且還傳播到訂閱客戶端。 –