Wpf客户端和asp.net web app signalr Hub,保存从信号服务器

时间:2015-06-04 13:44:49

标签: c# asp.net wpf signalr

我正在asp.net网络应用中创建 SignalR 中心。我的wpf应用程序是此 SignalR 中心的客户端

我在我的wpf应用程序中有登录工具,我想将这些用户存储在asp.net中创建的集线器上,以便我可以向特定用户发送信息。 我想存储两个属性UserName和UserToken,集线器中这些属性的列表,如何将此属性信息发送到集线器

我尝试使用Client.Caller,但它没有在集线器上的连接或断开事件中获取任何值

1 个答案:

答案 0 :(得分:0)

您可以在hub方法中访问用户:有User实例属性。对于令牌,我将假设它在请求标头中。您可以在hub Context.Request.Headers属性中访问它。您无需存储用户即可向其发送数据。在某个地方(不在集线器继承者中),你会有这样的一行:

private static readonly Lazy<IHubContext> _hubCtx = new Lazy<IHubContext>(() => GlobalHost.ConnectionManager.GetHubContext<MyHub>());

protected virtual Task SendReportToAll(Report r)
{
    return _hubCtx.Value.Clients.All.EventToTriggerOnClient(r);
}

protected virtual Task SendReportToUser(Report r, string username)
{
    return _hubCtx.Value.Clients.User(username).EventToTriggerOnClient(r);
}