如果不知道您正在计算什么样的分析数据以及您正在使用什么类型的图表,那么给您一个很好的例子有点困难。但无论如何,这是一个简单的场景。
当服务器更改一些分析数据时,使用 socket.io 向客户端发送一条消息,其中包含新的分析数据。像这样的:
io.sockets.emit('analyticsUpdate', x, y);
在客户端,照常创建您的 Highcharts 图表,然后将 load() 事件添加到图表选项,然后使用 socket.io 检索新数据并更新图表,如下所示:
var chart;
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'spline',
events: {
load: function() {
socket.on('analyticsUpdate', function (x, y) {
// Simple case where you have a single series
// and your data can simply be appended to the series
var series = this.series[0];
series.addPoint([x, y], true, true);
};
}
}
}
});
因此,每当服务器更新一些分析数据时,socket.io 就会发出一条消息。客户端总是在监听来自服务器的消息,因此每当它收到一条新消息时,它都会更新图表。