1

我刚刚开始使用 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 上都试过了。并且在日志记录开启时,日志控制台日志中没有任何错误。

4

1 回答 1

0

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

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

于 2013-03-05T15:59:43.950 回答