代码之家  ›  专栏  ›  技术社区  ›  NoviceDeveloper

仅signar客户端调用正在从服务器获取更新。MVC公司

  •  1
  • NoviceDeveloper  · 技术社区  · 7 年前

    我遇到了这样一种情况:我从hub response中检索到所需的内容,但它不会将其广播给所有用户,只有发出呼叫的用户才能在浏览器上接收更新。

    我的模型最初是

    <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();
    

    在这一点上,我在modelJson中得到了我所需要的一些更新。

    然后我得到了我的最新数据如下:

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

    现在我得到了触发此请求的客户端的更新,但没有得到任何其他客户端的更新。

    在我的信号机上我指定所有人都应该收到。。

    更新:我的中心类

     context.Clients.All.handleMyJob();
    
     public string GetPrintJobsCounts()
     {
         var model = new SomeModel();        
         model.FirstCount = counts.MyCount ?? 0;
         return JsonConvert.SerializeObject(model).ToString();
     }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Neville Nazerane    7 年前

    All.handleMyJob ,您可以使用 On 在js的hub代理中运行。

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

    但是,如果要在服务器端传递任何数据,可以使用 Clients.All.handleMyJob(someData) 在js中,您可以使用:

    myHubProxy.on("handleMyJob", function(someData){
    
    });
    
    推荐文章