Ich habe eine ASP.NET MVC-Anwendung, die auf Server A und einige Webdienste auf Server B ausgeführt wird. Ich habe Echtzeitbenachrichtigungen implementiert, für die ich SignalR auf Server A verwendet habe. Aber jetzt ich Server B muss auch in der Lage sein, Nachrichten an ein View zu senden, das von Server A (der Haupt-Webanwendung) bereitgestellt wird. Daher versuche ich das Tutorial here Redis Backplane zu beteiligen.Verwenden von Redis mit SignalR
In meinem Start in Server A, habe ich folgendes hinzugefügt:
GlobalHost.DependencyResolver.UseRedis("localhost", 6379, string.Empty, "abc");
app.MapHubs();
Hier gehe ich davon aus, dass „myApp“ bezeichnet den Kanal, und wenn ich publish abc "hello world"
auf der Redis Konsole laufen, kann ich den Teilnehmer sehen count kam als 1 zurück, aber ich bin nicht in der Lage herauszufinden, wie ein SignalR-Hub mit dem Kanal interagiert. Woher bekomme ich die Nachricht auf dem Server/View? Können wir nur einen Redis-Kanal abonnieren? Können wir nicht dynamisch konfigurieren, um einen bestimmten Kanal zu abonnieren?
BEARBEITEN: Ich kann Nachrichten sehen, die von Chat gesendet werden Anwendung, die mit SignalR auf Redis-Konsole implementiert wird, wenn ich abc
abonniere.
Auch für jetzt habe ich meinen eigenen Redis-Listener auf Server A implementiert, der beim Empfang einer Nachricht vom Redis-Kanal die signalR-Hub-Funktion aufruft. Ich bin sicher, dass es einen anderen Weg geben muss, um dies zu tun, und ich hoffe, dass Backplane mir helfen kann, aber nicht sicher ist, wie es funktioniert.
Eine einfache Lösung. Veröffentlichen Sie eine Nachricht auf dem gewünschten Kanal auf Server B. Abonnieren Sie den Kanal auf Server A und drücken Sie die Nachricht manuell auf signalR Hub. –
Das klingt vielleicht dumm, aber es würde mir helfen, mit Klarheit zu verstehen. Bedeutet dies, dass jede zu sehende Nachricht nur über Server A und niemals direkt über Server B gesendet werden kann? Was nützt da SignalR.red dann? – labyrinth
Bitte überprüfen Sie dies: - http://gigi.nullneuron.net/gigilabs/backplane-signalr-scaleout-with-redis/ Auch unten: http://www.asp.net/signalr/overview/performance/scaleout -mit-redisist –