我正在尝试将 userId 传递给与signalR连接的集线器。客户端是这样建立连接的:
connection = new HubConnectionBuilder()
.WithUrl("http://localhost:56587/hub", options =>
{
options.Headers["UserId"] = loginTextBox.Text;
})
.AddMessagePackProtocol()
.Build();
如何在集线器的OnConnectedAsync()方法中读取此标头?
答案 0 :(得分:4)
要获取标题值作为字符串:
public override async Task OnConnectedAsync()
{
var httpCtx = Context.GetHttpContext();
var someHeaderValue = httpCtx.Request.Headers["UserId"].ToString();
}
注意-您可能要考虑在查询字符串中传递信息,因为并非所有传输都支持标头。