我刚开始使用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上试过它。并且在启用日志记录时日志控制台日志中没有任何错误。
答案 0 :(得分:0)
最后,我重新设计了后端任务以连接到Hub Proxy并通过调用方法更新统计信息。
问题可能是我从外部dll调用静态hub方法?