尝试从 HuContext(即:从服务器而不是另一个客户端)发送信号器消息时,我收到以下错误。这在我的原始原型中工作,但自从我实施 Backplane 后就停止工作了:
找不到方法:“Microsoft.AspNet.SignalR.Hubs.IHubConnectionContext Microsoft.AspNet.SignalR.IHubContext.get_Clients()”。
我在 Hub 类上创建了一些静态方法,以方便在处理期间触发 SignalR 消息(按照我找到的示例)。Hub 类目前看起来像这样(为简洁起见,删除了类似的方法):
public class ImportFilesHub : Hub
{
public void ImportFileProgressChanged(ImportFileProgressChangedNotification notification)
{
Clients.All.ImportFileProgressChanged(notification);
}
public static void HubImportFileProgressChanged(ImportFileProgressChangedNotification notification)
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<ImportFilesHub>();
context.Clients.All.importFileProgressChanged(notification);
}
}
我怀疑我收到此错误的原因是因为这是在使用背板时处理此类要求的不正确方法(因为它在原型中工作),但我已经搜索了 SignalR 文档并且找不到替代方法这样做。
我想我可以将 SignalR 客户端类添加到服务器并以客户端的方式连接......但这似乎不是一个非常优雅的方法。