Asp.net web api 获取信号器调用上下文之外的信号器连接id

Asp.net web api 获取信号器调用上下文之外的信号器连接id,asp.net-web-api,signalr,Asp.net Web Api,Signalr,我有一个典型的web api控制器,它是从jscript客户端调用的。在服务器处理请求期间,我希望向一组Signal客户端发送消息,但与当前web api http请求相对应的客户端除外 在信号器上下文不可用的情况下,如何获取连接id? 当然,我可以让客户端使用http请求的其余参数显式发送它,但我想知道是否有更优雅的方式。没有更优雅的方式了。连接id存储在客户机上,并且通常与signalr客户机发出的每个请求一起传递。没有比这更优雅的方法了。连接id存储在客户机上,并且通常随signalr客户

我有一个典型的web api控制器,它是从jscript客户端调用的。在服务器处理请求期间,我希望向一组Signal客户端发送消息,但与当前web api http请求相对应的客户端除外

在信号器上下文不可用的情况下,如何获取连接id?
当然,我可以让客户端使用http请求的其余参数显式发送它,但我想知道是否有更优雅的方式。

没有更优雅的方式了。连接id存储在客户机上,并且通常与signalr客户机发出的每个请求一起传递。

没有比这更优雅的方法了。连接id存储在客户机上,并且通常随signalr客户机发出的每个请求一起传递。

我创建了一个库,如果您实现了,它可以使后端服务总线和signalr之间的间隙更加无缝。您可以通过WebApi方法这样做

eventAggregator.Publish(new MyEvent(data));
还有MyEvent

public class MyEvent : Event 
{
   public MyEvent(Data data) 
   {
      this.PerformedBy = Thread.CurrentPrincipal.Identity.Name;
   }
}
然后为该事件创建约束处理程序

public class MyEventConstraint : EventConstraintHandler<Event>
{
   public bool Allow(MyEvent myEvent, username, dynamic constraint) 
   {
      return myEvent.PerformedBy != username;
   }
}
公共类MyEventConstraint:EventConstraintHandler
{
公共bool-Allow(MyEvent-MyEvent、用户名、动态约束)
{
返回myEvent.PerformedBy!=用户名;
}
}
您还可以将MyEvent设置为泛型,以便可以对所有实体重用它

更多信息以及如何设置它


请注意,属于上述用户的所有客户端都不会获得该事件

我已经创建了一个库,如果您实现了它,它可以使后端服务总线和信号器之间的差距更加无缝。您可以通过WebApi方法这样做

eventAggregator.Publish(new MyEvent(data));
还有MyEvent

public class MyEvent : Event 
{
   public MyEvent(Data data) 
   {
      this.PerformedBy = Thread.CurrentPrincipal.Identity.Name;
   }
}
然后为该事件创建约束处理程序

public class MyEventConstraint : EventConstraintHandler<Event>
{
   public bool Allow(MyEvent myEvent, username, dynamic constraint) 
   {
      return myEvent.PerformedBy != username;
   }
}
公共类MyEventConstraint:EventConstraintHandler
{
公共bool-Allow(MyEvent-MyEvent、用户名、动态约束)
{
返回myEvent.PerformedBy!=用户名;
}
}
您还可以将MyEvent设置为泛型,以便可以对所有实体重用它

更多信息以及如何设置它

请注意,属于该用户的所有客户端都不会获得该事件