【发布时间】:2019-09-10 22:08:03
【问题描述】:
我编写了一个使用 SignalR 的应用程序。我有搜索按钮来根据搜索条件获取数据。 (例如,如果您输入客户名称并单击搜索,则与客户名称相关的所有数据都将填充到屏幕上的网格中)
在我只打开一个浏览器的情况下,一切都很完美。但是,如果我打开同一浏览器的第二个实例,并且当我在新的浏览器选项卡上使用 TransactionDate 进行搜索时,它会复制第一个实例中的内容,即使它只适用于第二个实例。
我是 SignalR 的新手,我非常愿意提供任何帮助或指导。
Angular SignalRService 开始与 api 的连接
this.hubConnection = new signalR.HubConnectionBuilder()
.withUrl(this.paymentDraftHubUrl)
.build();
this.hubConnection
.start()
.then(() => this.hubConnectionStatus = 'Connection started')
.catch(err => (this.hubConnectionStatus = 'Error while starting connection: ' + err));
}
C# 中的 Hub 类
public class PaymentDraftServiceHub : Hub, IPaymentDraftHub
{}
API 控制器
使用计时器不断调用存储库以获取新数据,
[HttpGet]
[Route("GetCsrTranactions")]
public IActionResult GetCsrTranactions([FromQuery] TransactionExceptionDataRequest queryParams)
{
TimeManager.Dispose();
var timerManager = new TimeManager(async () =>
await _paymentDraftHub.Clients.All.SendAsync(SignalRConstants.TransferPaymentDraftServiceData, await _paymentTransactionRepository.GetCsrTranactionsAsync(queryParams)));
var response = new ResponseMessage { Message = "Accepted", Code = "201" };
return Ok(response);
}
我是 SignalR 的新手,非常希望得到任何帮助或指导。
【问题讨论】:
标签: angular signalr asp.net-core-2.0 signalr-hub