1
我基於本教程實時創建圖表。 http://www.highcharts.com/docs/working-with-data/live-dataaddPoint with HIGHCHARTS(xAxis dateTime)
然後我用的NodeJS和插座的工作我修改了代碼,但突然的圖形不更新.. 下面的代碼:
代碼客戶端:
var chart;
var series = Array();
socket.on('ping', function(data){
console.log(data);
socket.emit('pong', {beat: 1})
//console.log(i);
requestData(data);
});
function requestData(point) {
if(point !== null){
//console.log('if'+point);
var series = chart.series[0],
shift = series.data.length > 60; // shift if the series is longer than 20
//alert(point);
chart.series[0].addPoint(point, true, shift);
//setTimeout(requestData, 5000);
}
}
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
defaultSeriesType: 'spline',
zoomType: 'x',
backgroundColor: "#333333"
},
load: function(){
chart = this;
requestData();
},
title: {
text: 'Bitcoin price'
},
xAxis: {
type: 'datetime',
tickPixelInterval: 150,
maxZoom: 20 * 1000
},
yAxis: {
minPadding: 0.2,
maxPadding: 0.2,
title: {
text: 'Value',
margin: 80
}
},
series: [{
name: 'Bitcoin Price (Spot)',
data: []
}]
});
});
代碼服務器:
var amount;
var dateN;
function updateChart(){
setTimeout(updateChart, 5000);
dateN =(Math.floor(new Date().getTime() /1000)*1000); // equal to time() in php
client.getSpotPrice({'currency': 'USD'}, function(err, obj) {
amount = obj.data.amount;
});
var info = [dateN,amount+phpjs.rand(01,99)];
var pointd = JSON.stringify(info);
console.log(pointd);
//console.log(amount);
pointd = phpjs.str_replace('"','',pointd);
io.sockets.emit('ping', pointd);
}
io.sockets.on('connection', function (socket) {
socket.on('pong', function(data){
console.log("Pong received from client");
});
});
當我看日誌控制檯時,例如,我很好地[1446218389000,323.3578]
。 準確地說,我在PHP中使用腳本在基礎上收到的。
但不更新圖表。 如果您有想法?
謝謝:)
謝謝你的答案,但我解決我的問題,否則政變.. 我的腳本app.js我把數據庫所需的值和客戶端AJAX我提出的要求到由socket.io命令檢索值的服務器。 – demenvil