如何在 .net 客户端添加 SignalR 请求 Headers
How to add SignalR request Headers on .net client side
我有服务器端集线器,代码如下:
private string GetUserPhoneFromContext()
{
var httpCtx = Context.GetHttpContext();
return httpCtx.Request.Headers["userPhone"].ToString();
}
提到上面的代码我无法更改它适用于带有 flutter 客户端的产品。
我正在开发 blazor wasm 客户端,在客户端我想添加 headers 如下:
hubConnection = new HubConnectionBuilder()
.WithUrl($"{Uri}?userPhone={Phone}", options =>
{
options.Headers.Add("userPhone", Phone);
})
.WithAutomaticReconnect()
.Build();
但也不是通过 options.Header.Add() 既不是通过添加查询字符串参数我也无法通过 GetUserPhoneFromContext 方法在服务器端读取 header,我总是得到空字符串而不是在客户端 userPhone 上添加header。不清楚为什么它适用于 flutter 客户端但不适用于 .net blazor wasm
找到根源了。 Blazor WASM SignalR 实现是不支持 Headers 的 JS 实现的包装器。如果您需要其他数据,请使用 QueryString
我有服务器端集线器,代码如下:
private string GetUserPhoneFromContext()
{
var httpCtx = Context.GetHttpContext();
return httpCtx.Request.Headers["userPhone"].ToString();
}
提到上面的代码我无法更改它适用于带有 flutter 客户端的产品。 我正在开发 blazor wasm 客户端,在客户端我想添加 headers 如下:
hubConnection = new HubConnectionBuilder()
.WithUrl($"{Uri}?userPhone={Phone}", options =>
{
options.Headers.Add("userPhone", Phone);
})
.WithAutomaticReconnect()
.Build();
但也不是通过 options.Header.Add() 既不是通过添加查询字符串参数我也无法通过 GetUserPhoneFromContext 方法在服务器端读取 header,我总是得到空字符串而不是在客户端 userPhone 上添加header。不清楚为什么它适用于 flutter 客户端但不适用于 .net blazor wasm
找到根源了。 Blazor WASM SignalR 实现是不支持 Headers 的 JS 实现的包装器。如果您需要其他数据,请使用 QueryString