如何判断我的SignalR Backplane(Redis)是否真的正常工作?

时间:2014-05-15 22:30:51

标签: redis signalr-hub signalr-backplane

我目前正在使用SignalR 2.0.3,使用Backis进行扩展,使用Redis for windows http://msopentech.com/blog/2013/04/22/redis-on-windows-stable-and-reliable/

我已在VS中与适当的SignalR.Redis包集成。

我对我的初创公司进行了以下更改:

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

它建立得很好。 我的客户端似乎连接正常。 我可以在客户端和客户端之间发送通知服务器,反之亦然。

从Redis客户端,我可以输入:

get BroadcasterExample
which returns: "3"

我认为事情正在发挥作用,但是......

有几个问题: 1)我怎么知道它确实有效?

2)我可以在Redis服务器上检查什么(通过Redis客户端)?

3)什么是存储在什么数据结构(键/值对,列表,哈希,集合)?

我想深入了解一下发生了什么。 我查看了http://redis.io/commands上的命令 什么都没有跳出来,这将有助于我绘制真实情况。

有人能指出我在正确的方向吗?

谢谢, JohnB

2 个答案:

答案 0 :(得分:5)

1)我相信你已经确认它在运行时已经正常工作"得到BroadcasterExample"它返回" 3"。 BroadcasterExample是SignalR将发送消息的频道的名称,我相信3表示已处理的消息数。当您使用SignalR发送更多消息时,您应该看到该数字增量。

2)告诉事情正在发挥作用的一个好方法是使用redis客户端订阅BroadcasterExample频道并观看消息。从客户端运行:

subscribe BroadcasterExample

3)SignalR可能只存储一个密钥," BroadcasterExample"键。 SignalR实际上只是使用Redis的发布/订阅功能,而不是存储任何数据。

答案 1 :(得分:0)

jaggedaz的答案有用。我还想补充一点,你可以通过使用IIS Express在2个不同的端口下托管你的应用程序两次来快速完成不同的测试。然后,如果您将2个浏览器窗口连接到这2个不同的实例并开始交换消息(如广播到全部),您将看到它们流过两个客户端,这只有在背板实际工作时才有可能。