signalR客户端事件未从集线器外部的服务器调用

时间:2014-04-24 11:35:09

标签: signalr signalr-hub signalr.client

我对signalR完全陌生,也是javascript的新手。 我有一个signalR集线器和一个演示客户端应用程序,它连接到集线器以及向Hub.Groups添加特定组。 这一切似乎都正常。 在我的连接上,我创建了一个名为notifyStatusUpdate的事件处理程序来更新每个特定的组。但是当我尝试在服务器端使用它时,客户端绝对没有做任何事情。

    function connect(e) {
    var env = $('#env option:selected').val();
    connection = $.hubConnection(env + '/signalr', { useDefaultPath: false });
    connection.logging = true;
    paymentsHubProxy = connection.createHubProxy('paymentsHub');

    paymentsHubProxy.on('notifyStatusUpdate', function (result) {
        console.log(result);
        receivedTxt.val(JSON.stringify(result));
    });

    connection.start()
        .done(function () {
            console.log('Now connected, connection ID=' + connection.id);

            subscribeBtn.removeProp("disabled");
            saveBillItemsBtn.removeProp("disabled");
        })
        .fail(function () {
            console.log('Could not connect');
        });


    e.preventDefault();
}

这是应该调用它的客户端代码,但不是。

        public BaseApiResponse<TriggerStatusUpdateResponse> TriggerStatusUpdate(TriggerStatusUpdateRequest request) {
        try
        {
            LoggingService.LogInfo("entering...");

            var statuses = paymentsManager.GetMultipleOrderStatuses(request.OrderIds.ToArray());
            GlobalHost.ConnectionManager.GetHubContext<PaymentsHub>().Clients.Group(request.SiteId).notifyStatusUpdate(new { Statuses = statuses });

            return new BaseApiResponse<TriggerStatusUpdateResponse>("Success",ResponseStatusType.Success);
        }

我试图在客户端创建一个函数,基本上只捕获所有,显示一些东西。

paymentsHubProxy.on('notifyStatusUpdate', function (result) {
        console.log(result)
        receivedTxt.val(result.toString);
    });

虽然服务器端调用类似

的内容
GlobalHost.ConnectionManager.GetHubContext<PaymentsHub>().Clients.All.notifyStatusUpdate("WORKDARNIT");

无济于事。什么都行不通,我不明白为什么。

0 个答案:

没有答案