8

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

我已经在 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 没有什么东西会在我身上跳出来,这将帮助我了解真正发生的事情。

有人可以在这里指出我正确的方向吗?

谢谢,约翰B

4

2 回答 2

5

1) 我相信您在运行“get BroadcasterExample”并返回“3”时已经验证它正在工作。BroadcasterExample 是 SignalR 将发送消息的通道的名称,我相信 3 代表已处理的消息数。当您使用 SignalR 发送更多消息时,您应该会看到该数字增加。

2) 判断事情是否正常的一个好方法是使用 redis 客户端订阅 BroadcasterExample 频道并观察消息通过。从客户端运行:

subscribe BroadcasterExample

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

于 2014-05-30T17:19:33.280 回答
0

jaggedaz 的回答提供了有用的信息。我还要补充一点,您可以使用 IIS Express 在 2 个不同的端口下两次托管您的应用程序,从而非常快速地进行不同类型的测试。如果您随后将 2 个浏览器窗口连接到这 2 个不同的实例并开始交换消息(例如向 All 广播),您将看到它们在两个客户端之间流动,这只有在背板实际工作时才有可能。

于 2014-05-30T21:30:55.743 回答