我目前正在使用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
答案 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个不同的实例并开始交换消息(如广播到全部),您将看到它们流过两个客户端,这只有在背板实际工作时才有可能。