我正在asp.net网络应用中创建 SignalR 中心。我的wpf应用程序是此 SignalR 中心的客户端
我在我的wpf应用程序中有登录工具,我想将这些用户存储在asp.net中创建的集线器上,以便我可以向特定用户发送信息。 我想存储两个属性UserName和UserToken,集线器中这些属性的列表,如何将此属性信息发送到集线器
我尝试使用Client.Caller,但它没有在集线器上的连接或断开事件中获取任何值
答案 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);
}