Только клиент SignalR вызывает обновление с сервера. MVC - PullRequest
0 голосов
/ 27 октября 2018

У меня есть ситуация, когда я получаю то, что мне нужно, из ответа концентратора, но затем он не передает его всем пользователям, и только пользователь, который выполняет вызов, получает обновление в браузере.

Моя модель изначально поставляется как

<button>
    <span id="MySpan">@Html.ValueFor(m => m.MyCount)</span>
</button>

Вот моя функция:

myHubProxy.client.handleMyJob = function () 
{
    myHubProxy.server.getTheCounts().done(function (model) {
        var modelJson = JSON.parse(model);
        updateTheCounts(modelJson);
    });
};

$.connection.hub.start();

На данный момент у меня есть то, что мне нужно в модели Json - количество обновленных # s.

и тогда у меня есть updateTheCounts как:

 function updateTheCounts(model) {
    $('#MySpan").text(model.FirstCount);
 }

Теперь я получаю обновление для клиента, который вызвал этот запрос, но не для других клиентов.

На мой сигнал R я указал, что все должны получить ..

Обновление: мой класс хаба

 context.Clients.All.handleMyJob();

 public string GetPrintJobsCounts()
 {
     var model = new SomeModel();        
     model.FirstCount = counts.MyCount ?? 0;
     return JsonConvert.SerializeObject(model).ToString();
 }

1 Ответ

0 голосов
/ 27 октября 2018

Поскольку вы звоните All.handleMyJob, вы можете использовать функцию On в прокси-сервере-концентраторе в js.

myHubProxy.on("handleMyJob", function(){

});

Однако, если вы хотите передать какие-либо данные на стороне сервера, вы можете использовать Clients.All.handleMyJob(someData), а в js вы можете использовать:

myHubProxy.on("handleMyJob", function(someData){

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...