asp.net mvc5 SignalR

asp.net mvc5 SignalR

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

问题一:

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

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

问题二:

因此,如果他以 "TestUser2" 身份登录,他将不会得到任何信息,因为它将信息发送到 "TestUser1"。这对 SiglaR 来说可能吗?

还有我的另一个问题,这或多或少是一个跟进。因为我希望 WPF 客户端向网站发送信息,我是否应该将 WPF 客户端也作为服务器,或者我应该制作 1 个 WPF 客户端,而不是网站和客户端都连接到的 1 个 WPF 服务器。

或者有没有可能让客户端既是服务端又是客户端?

客户端不应该是服务器。您的 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/