静态集线器方法不向客户端发送数据

时间:2013-03-04 13:51:41

标签: knockout.js signalr signalr-hub

我刚开始使用SignalR,所以我很可能做一些愚蠢的事情。

我有一个完成工作的外部任务,每次完成一个循环时,它都会调用静态集线器方法,该方法会向网站发送一些更新的结果。正如您在下面所看到的,我正在向静态方法发送更新的统计信息行,并尝试将该行写出到控制台以进行测试。

服务器端代码如下所示:

public static void UpdateStats(Stats stats)
{
    var context = GlobalHost.ConnectionManager.GetHubContext<StatsHub>();
    context.Clients.All.updateStats(stats);
}

客户端代码如下:

statsHub.client.updateStats = function (stats) {
    console.log(stats);
}

我正在使用SignalR来执行初始页面加载,它正常工作。

$.connection.hub.start(function () {
   statsHub.server.getAll();
});

文档就绪:

$.connection.hub.logging = true;
var statsHub = $.connection.statsHub;


var viewModel = new ScraperViewModel(statsHub);

statsHub.client.updateStats = function (stats) {
    viewModel.UpdateStats(stats);
};

ko.applyBindings(viewModel);
$.connection.hub.start(function () {
    statsHub.server.getAll();
});

更新

只是为了确认 - 我正在使用SignalR - 1.01(我已经尝试过1.0.0)。我已经注释掉了Knockout代码,所以它只是SignalR。在IE和Chrome上试过它。并且在启用日志记录时日志控制台日志中没有任何错误。

1 个答案:

答案 0 :(得分:0)

最后,我重新设计了后端任务以连接到Hub Proxy并通过调用方法更新统计信息。

问题可能是我从外部dll调用静态hub方法?