📜  “不支持使用不是由 HubPipeline 创建的 Hub 实例.” - C# (1)

📅  最后修改于: 2023-12-03 15:21:25.495000             🧑  作者: Mango

不支持使用不是由 HubPipeline 创建的 Hub 实例.

在使用 SignalR 构建实时应用程序时,当您尝试将 Hub 与 HubPipeline 中的自定义管道一起使用时,可能会遇到以下错误消息:

不支持使用不是由 HubPipeline 创建的 Hub 实例.

这是由于您正在尝试使用自定义管道而不是默认的 SignalR 管道。

要解决此问题,请创建一个启用自定义管道的新实例:

var pipeline = new HubPipeline();
pipeline.AddModule(new MyCustomModule());

var myHubConfiguration = new HubConfiguration
{
    Resolver = new DefaultDependencyResolver(),
    EnableDetailedErrors = true,
    EnableJavaScriptProxies = false,
    EnableJSONP = false,
    EnableCors = true,
    EnableDetailedErrors = true,
    EnableAutoRejoiningGroups = true,
    EnableRejoiningGroupsOnHubConnect = true,
    EnableDetailedErrors = true,
    EnableJavaScriptProxies = true,
    EnableJSONP = true,
    Resolver = new DefaultDependencyResolver(),
    EnableTransports = true,
    EnableMonitoring = true,
    EnableCrossDomain = true,
    EnableJavaScriptProxies = true,
    EnableJSONP = true,
    EnableDetailedErrors = true,
    EnableAutoRejoiningGroups = true,
};

var myHub = new MyHub();
myHub.Start(new HttpConfiguration(), pipeline, myHubConfiguration);

这将创建一个新的 HubPipeline 实例,它包括您的自定义模块。然后,您可以使用这个自定义的 HubPipeline 对象来启动您的 MyHub 实例。

上述代码片段是针对 C# 语言的,您可以在您的 SignalR 应用程序中使用它,以确保您的自定义管道能够正常工作,避免出现上述错误消息。