asp.net mvc5 SignalR

时间:2015-04-07 08:27:08

标签: c# asp.net wpf signalr

这个问题与我的代码无关。它是关于理解我应该如何做某件事。

问题1:

我正在开发一个有趣的小项目,它将从WPF客户端向WebSite发送一些信息。但我想做的是,我希望能够登录我的WPF客户端并将其发送给用户。

所以,让我们说我登录为" TestUser1"在我的WPF客户端上,我希望signalR将他的信息发送给网站上的该用户。因此,当他在asp.net mvc5上登录该用户时,我希望他获取该信息而不是其他人。

问题2:

因此,如果他将以" TestUser2"他不会得到任何东西,因为它将信息发送到" TestUser1"。 SiglaR可以实现吗?

对于我的另一个问题,这或多或少是一个跟进。由于我希望WPF客户端向网站发送信息,我是否应该将WPF客户端作为服务器,或者我应该制作1个WPF客户端,以及网站和客户端连接的1个WPF服务器。

或者是否可以使客户端既是服务器又是客户端?

1 个答案:

答案 0 :(得分:0)

客户端不应该是服务器。您需要一个SignalR服务器的主机(例如您现有的Web服务器)。

然后使用pub / sub模式订阅网站上的用户名,然后在客户端上发布。 SignalR不支持开箱即用的pub / sub,无论是自己动手还是使用库,我都创建了这个库,我觉得这个库很适合你的需要。

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki

这是一个小演示,您可以如何发布和订阅所有SignalR连接状态。

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/tree/ConnectionStateExample/SignalR.EventAggregatorProxy.Demo.MVC4

它向所有用户广播所有用户的所有连接状态,但是使用我库的内置约束API应该很容易实现

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki/Implement-constraint-handlers

这是一个现场演示: http://malmgrens.org/signalR/