SignalR kombiniert mit Breeze

8

Ich habe ein Projekt, das ich gerade mit BreezeJS eingerichtet habe. Ich weiß nicht, was in BreezeJS in vollem Umfang vor sich geht, aber ich habe einfach akzeptiert, dass es funktioniert, und meine Objekte werden im Grunde von diesem einfachen Befehl aus angezeigt.

%Vor%

Ich möchte jetzt die Reaktionsfähigkeit auf Benutzer erhöhen, die dieselben Elemente mit signalR bearbeiten. Das bedeutet, dass ich an dieser Stelle Rückrufe habe, die auf Javascript ausgelöst werden und sagen, dass sich das Objekt mit guid = xxxxxxx geändert hat (guid ist der Schlüssel).

Wie kann ich Breeze anzapfen, indem ich das Element aktualisiere, ohne den Server erneut abzufragen, oder sehe es als ein Update, das an den Server zurückgesendet werden muss. Denken Sie daran, dass ich gerade das Update von Signal r erhalten habe.

Hätte ich überhaupt einen anderen Weg gehen sollen, gibt es einen Grund, ein WebApi zu erstellen, wenn ich am Anfang einfach die Daten vom signalR-Hub hätte zurückgeben können? Wäre es einfach, dies mit Breeze anstelle von WebApi einzurichten?

    
Poul K. Sørensen 16.04.2013, 11:03
quelle

2 Antworten

12

Wir bei IdeaBlade freuen uns darauf, Ihnen eine gute Anleitung für Breeze-Apps zu geben, die mit SignalR arbeiten.

Ich denke derzeit, dass SignalR für das Benachrichtigen von Kunden über Änderungen von Daten von Interesse geeignet ist, aber ich würde die geänderten Daten nicht an den Client übermitteln SignalR . Ich lasse den Client entscheiden, ob (oder nicht ... oder wann) die geänderten Daten vom Server abgerufen werden sollen.

Meine Argumentation basiert auf der Ansicht, dass SignalR ein schneller, leichter Mechanismus zur Benachrichtigung sein sollte, nicht ein Feuerschlauch, der große Datenmengen bei abonnierten Kunden sprüht, die bereit oder willens sind, mit einem riesigen System fertig zu werden Volumen der Änderungsdaten, die ihnen aufgezwungen werden.

Vielleicht können Sie näher erläutern, warum Sie anders denken. Ich bin offen für eine alternative Perspektive.

    
Ward 17.04.2013, 06:28
quelle
4

Ich stimme Ward Bell vollkommen zu

Wenn Sie sich fragen, wie Sie es tun sollten : Beispielsweise könnten Sie in einer eckigen Anwendung einen Mechanismus zur Verfolgung von Brise-Entitäten wie diesen abonnieren

Dann könnten Sie einen SignlarR Hub irgendwo anders einrichten, um diese Änderungen an alle Clients zu übertragen

Aber dank der Macht von breeze.js, würde ich es nicht empfehlen , denn wie Ward sagte: "Das wird ein Feuerlöschschlauch sein, der große Datenmengen bei abonnierten Kunden sprüht". Denken Sie nur einen Moment nach, und denken Sie daran, dass Ihre Anwendung hmmm ist, lassen Sie uns sagen, 30 gleichzeitige Benutzer, die Transaktionen durchführen, stellen Sie sich den gesamten Netzwerkverkehr vor, der erstellt wird. Das wird eine schlechte Software-Architektur sein.

Der einzige Grund, warum Sie dies in Betracht ziehen sollten, ist, wenn Sie ein Dashboard mit Live-Daten aktualisieren müssen, aber dennoch müssen Sie besonders präzise, ​​bewusst, bewusst sein und den Datenverkehr und die Serverauslastung kennen.

> %Vor%     
Oscar Agreda 04.08.2014 16:47
quelle

Tags und Links