如何访问 Blazor WebSocket 连接中的 id 查询字符串参数?

How Can the `id` Query String Parameter in a Blazor WebSocket Connection Be Accessed?

使用我的 Blazor 服务器端应用程序进行调试时,我看到以下消息:

[2022-02-25T10:40:19.177Z] Information: WebSocket connected to wss://<host>/_blazor?id=<_identifier_>.

我对 id 查询字符串参数特别感兴趣。这个值在 Blazor 应用程序中是否以任何方式可用?我查看了 ComponentHub.Context.ConnectionId,但它似乎与该值不匹配。

我知道我可以使用 IHttpContextAccesssor,但我想远离它,因为这是 considered poor practice with Blazor applications

(如果我对这个特定场景有误,那也很高兴知道。)

这是 SignalR 握手的内部实现细节,绝对不能让开发人员对其进行任何操作。

例如,如果由于网络问题无法建立 websocket 连接,SignalR 会回退到长轮询,并且每个长轮询请求都会获得一个新的 ID 查询参数,该参数在内部都映射到相同的SignalR 连接 ID。

另请参阅这篇很棒的文章为什么这是个坏主意:https://consultwithgriff.com/signalr-connection-ids/