我正在为 Intranet 设计一个网站,我将使用 signalR 将数据推送到特定的客户端(浏览器)。
我知道在 ASP.NET MVC4 中,每个连接到服务器的客户端都会创建一个新对象,即控制器类的一个新实例。但是,如何在 c# 中“寻址”特定的控制器实例,以便将新数据发送到特定的客户端。
我正在为 Intranet 设计一个网站,我将使用 signalR 将数据推送到特定的客户端(浏览器)。
我知道在 ASP.NET MVC4 中,每个连接到服务器的客户端都会创建一个新对象,即控制器类的一个新实例。但是,如何在 c# 中“寻址”特定的控制器实例,以便将新数据发送到特定的客户端。
你没有。
在 SignalR 中,您使用ClientId
发送到特定客户端。您没有针对Controller
. 您的网站只是所有这些的主机。它不关心您的具体实现(例如单个客户端的单个控制器的存在)。
因此,如果您想发送给特定用户,您可以ClientId
在您的 中跟踪他们Hub
,并将数据推送到该客户端。或者,如果没有持久连接,您可以让客户端生成一个令牌来跟踪它们。
我很确定 SignalR 的较新版本允许您控制ClientId
生成的方式。这允许您在没有持久连接的情况下随心所欲地跟踪它(因为ClientId
没有持久连接的每个连接都会有所不同)。