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