如何在HubConnection SignalR核心中发送参数/查询

Ped*_*nco 12 c# signalr-hub asp.net-core-signalr

我正在尝试将参数添加到与signalr的连接中.

我正在使用Builder来创建我的客户端连接并启动它:

var connection = new HubConnectionBuilder()
        .WithUrl("http://10.0.2.162:5002/connection")
        .WithConsoleLogger()
        .WithMessagePackProtocol()
        .WithTransport(TransportType.WebSockets)
        .Build();

await connection.StartAsync();
Run Code Online (Sandbox Code Playgroud)

我想在这个连接中发送一个简单的参数:类似于:

"令牌":"123"

在我的服务器端,我想我可以从HttpContext中获取此参数:

public override Task OnConnectedAsync()
{
    var httpContext = Context.Connection.GetHttpContext();
    var token = httpContext.Request.Query["Token"];
    return base.OnConnectedAsync();
}
Run Code Online (Sandbox Code Playgroud)

知道怎么发送这个参数吗?谢谢.

Ped*_*nco 16

我经过多次研究后发现了如何做到这一点:

在我的构建中,我只是从url连接发送令牌.像这样:

var connection = new HubConnectionBuilder()
        .WithUrl($"http://10.0.2.162:5002/connection?token={token}")
        .WithConsoleLogger()
        .WithMessagePackProtocol()
        .WithTransport(TransportType.WebSockets)
        .Build();
Run Code Online (Sandbox Code Playgroud)

  • 您是否必须对服务器上 MessageHub 的端点映射进行某种更改?我收到 400 回复 (2认同)