如何在SignalR客户端中获取连接TransportType?

问题描述 投票:0回答:1

我有一个基于 Microsoft.AspNetCore.SignalR.Client 的 SignalR .NET 客户端。

建立连接后,我想确定用于连接的 SignalR 传输机制用于调试目的。我在网络上遇到问题,需要在各种条件下验证当前的传输机制。

有人提出了各种类似的问题:

但他们的答案对我不起作用。由于这些问题很旧(4 年),而且当时 SignalR 有一些已弃用的软件包和重命名。我不确定它们是否相关。它们似乎还涵盖了服务器端传输类型检索。

他们答案的核心:

Context.Features.Get<IHttpTransportFeature>().TransportType.ToString();

在 SignalR 的一些 功能测试中发现,但这又似乎是在服务器端,在服务器端集线器内。

如何在客户端完成此操作?

signalr
1个回答
0
投票

您可以使用基于 Microsoft.AspNetCore.SignalR.Client 的 SignalR 客户端中 Connection 对象的 Transport 属性来获取连接传输类型。以下是确定用于连接的传输机制的示例:

using Microsoft.AspNetCore.SignalR.Client;
using Microsoft.AspNetCore.Http.Connections.Client;

// Create the connection
var connection = new HubConnectionBuilder()
    .WithUrl("http://your-signalr-endpoint")
    .Build();

// Start the connection
await connection.StartAsync();

// Get the transport type
var transportType = connection.Transport.GetType().Name;
Console.WriteLine($"Transport Type: {transportType}");

连接上 Transport 对象的 GetType().Name 属性可用于确定客户端 SignalR 连接使用的传输类型。

© www.soinside.com 2019 - 2024. All rights reserved.