【问题标题】:How can I pass/retreive querystring values in .NET Core version of SignalR?如何在 SignalR 的 .NET Core 版本中传递/检索查询字符串值?
【发布时间】:2021-10-10 23:43:40
【问题描述】:

我正在将现有的 .NET Framework 应用程序重写为 .NET Core 应用程序。在使用 SignalR 2.x 的旧版本中,我能够为客户端的连接设置查询字符串值:

$.connection.hub.qs = { appId: 123, instanceId: 456 };

然后在集线器本身(服务器端)中,我能够像这样检索查询字符串值:

int.TryParse(Context.QueryString["appId"]), out var appId);

但是 HubCallerContext 在 .NET Core 中不再具有 QueryString NameValueConnection。如何在 .NET Core 版本的 SingalR 中设置/检索查询字符串值?现在有没有更好的方法来传递特定集线器上所有方法所需的参数?

【问题讨论】:

    标签: .net-core signalr


    【解决方案1】:

    要在 .NET Core 中创建集线器连接的客户端代码中实现此目的,您需要执行以下操作:

    connection = new signalR.HubConnectionBuilder()
        .withUrl("/chatHub?appId=123")
        .withAutomaticReconnect()
        .build();
    

    然后在您的集线器逻辑中,您可以像这样检索查询字符串值:

    int.TryParse(Context.GetHttpContext().Request.Query["appId"], out var appId);
    

    【讨论】:

      猜你喜欢
      • 2017-05-02
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 2012-07-03
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多