2014-05-15 9 views
6

Ich spiele derzeit SignalR 2.0.3, mit einer Backplane horizontale Skalierung, die Redis für Fenster verwendet http://msopentech.com/blog/2013/04/22/redis-on-windows-stable-and-reliable/Wie kann ich feststellen, ob meine SignalR Backplane (Redis) wirklich so funktioniert, wie sie sollte?

ich mit dem entsprechenden SignalR.Redis Paket in VS. integriert haben

Ich habe die folgenden Änderungen an meinem Start:

GlobalHost.DependencyResolver.UseRedis(
     server: "localhost", 
     port: 6379, 
     password: string.Empty, 
     eventKey: "BroadcasterExample" 
     ); 
    app.MapSignalR(hubConfiguration); 

Es baut in Ordnung. Mein Client scheint OK zu verbinden. Ich kann Benachrichtigungen zwischen Client & Server und umgekehrt senden.

Von den Redis-Client kann ich eingeben:

get BroadcasterExample 
which returns: "3" 

Ich gehe davon aus, dass die Dinge funktionieren, aber ...

Ein paar Frage: 1) Wie kann ich sagen, dass das tatsächlich funktioniert?

2) Was kann ich auf dem Redis-Server untersuchen (obwohl der Redis-Client)?

3) Was wird in welchen Datenstrukturen (Schlüssel/Wert-Paare, Listen, Hashes, Sets) gespeichert?

Ich möchte ein wenig mehr im Detail sehen, was vor sich geht. Ich habe mir die Befehle angeschaut: http://redis.io/commands Nichts springt mir heraus, was mir helfen wird zu kartieren, was wirklich los ist.

Kann mir hier jemand in die richtige Richtung zeigen?

Danke, JohnB

Antwort

5

1) Ich glaube, Sie bereits bestätigt haben, dass es funktioniert, wenn Sie „get BroadcasterExample“ liefen und es wieder „3“. BroadcasterExample ist der Name des Kanals, über den SignalR Nachrichten sendet, und ich glaube, dass die 3 die Anzahl der Nachrichten darstellt, die verarbeitet wurden. Wenn Sie mehr Nachrichten mit SignalR senden, sollten Sie dieses Nummerninkrement sehen.

2) Eine gute Möglichkeit zu sagen, dass die Dinge funktionieren, ist, den BroadcasterExample-Kanal mit dem Redis-Client zu abonnieren und zuzusehen, wie die Nachrichten durchkommen. Vom Client aus:

subscribe BroadcasterExample 

3) SignalR speichert wahrscheinlich nur den einen Schlüssel, den "BroadcasterExample" Schlüssel. SignalR verwendet wirklich nur die Publish/Subscribe-Funktionalität von Redis und speichert keine Daten.

0

Die Antwort von jaggedaz hat nützliche Informationen. Ich würde auch hinzufügen, dass Sie eine andere Art von Test ziemlich schnell tun können, indem Sie Ihre Anwendung zweimal unter 2 differents Ports mit IIS Express hosten. Wenn Sie dann 2 Browserfenster mit diesen 2 verschiedenen Instanzen verbinden und mit dem Austausch von Nachrichten beginnen (z. B. Broadcasts an Alle), werden sie über beide Clients fließen, was nur möglich ist, wenn die Backplane tatsächlich funktioniert.