【发布时间】:2019-09-02 11:32:46
【问题描述】:
我需要连接到我的控制器中的 SignalR Core 集线器
(我不想使用依赖注入来调用我的集线器方法)
但我不想每次打电话给我的控制器时都启动我的HubConnection
我该怎么办?
我的控制器:
private static readonly string url = "http://localhost:10580/sgr/rtc";
public HubConnection Connection { get; private set; } = new HubConnectionBuilder().WithUrl(url).Build();
public SampleDataController()
{
Task.Run(async () => await Connection.StartAsync());
}
[HttpGet("[action]")]
public async Task<IActionResult> GetConnectionId()
{
try
{
var str = await Connection.InvokeAsync<string>("GetConnectionId");
return Ok(str);
}
catch (Exception)
{
return BadRequest("Connection is not established");
}
}
和我的中心:
public string GetConnectionId()
{
return Context.ConnectionId;
}
现在我为每个请求获得不同的connectionId,但我只想为客户获得一个connectionId。
【问题讨论】:
-
您不想使用
dependency injection和`我不想每次都启动我的HubConnection`的原因是什么?您的意思是要在应用程序启动时始终创建并保持连接?一般来说,您可以为每个请求创建连接。
标签: c# asp.net-core signalr signalr-hub asp.net-core-signalr