SignalR的通用无服务器集线器



SignalR有一个Hub类,看起来像这样:

public abstract class Hub<T> : Hub where T : class
{
protected Hub();
public IHubCallerClients<T> Clients { get; set; }
}
public interface IHubCallerClients : IHubCallerClients<IClientProxy>, IHubClients<IClientProxy>

它使用了一个IClientProxy类型,所以你可以在客户端调用接口方法而不是SendAsync()。我想做同样的事情与Serverless Hub类没有一个通用的构造函数,所以我怎么能做到这一点?我尝试过继承和隐藏基本属性,像这样:

public abstract class ServerlessHub<T> : ServerlessHub
where T : class
{
protected ServerlessHub(IServiceHubContext hubContext = null, IServiceManager serviceManager = null)
: base(hubContext, serviceManager)
{
}
public new IHubClients<T> Clients { get; }
}

,但我得到一个空引用异常的客户端。

我相信这是不可能的,看看Github上的这个问题:支持强类型集线器客户端

最新更新