Я хотел отправить данные со стороны сервера на сторону клиента, используя SignalR.У меня есть Task
здесь, который перебирает работу.Это задание наследует класс Hub
от SignalR, куда он отправляет текущий ход итерации.Однако он не вернет мне данные, которые я отправил со стороны сервера.
public async Task loop()
{
ProgressHub p = new ProgressHub();
for(var i = 0; i < 100; i++){
await p.SendProgress(i, 100);
}
}
public async Task SendProgress(int currentRow, int rowCount)
{
string message = "Initializing and Preparing...";
int percent = (currentRow * 100) / rowCount;
var hubContext = GlobalHost.ConnectionManager.GetHubContext<ProgressHub>();
var percentage = (currentRow * 100) / rowCount;
hubContext.Clients.All.AddProgress(message, percent + "%");
await Task.Delay(100);
}
Метод цикла вызова на контроллере.
public async Task<JsonResult> CallSignalR()
{
await loop();
return Json("", JsonRequestBehavior.AllowGet);
}
Вызов SignalR на JS
var progressNotifier = $.connection.progressHub;
console.log(progressNotifier);
progressNotifier.client.addProgress = function (currentRow, rowCount) {
console.log(currentRow);
};
$.connection.hub.start();