Mi chiedevo se potevo usare la libreria D3 con dati in tempo reale che il mio server avrebbe inviato tramite websocket. Non riesco a vedere alcuna documentazione o esempi che dimostrino questo. La mia aspettativa iniziale era di farlo dal seguente esempio dal codice:Dati in tempo reale con D3
ws = new WebSocket(ws://localhost:8888/ma");
some more code....
ws.onmessage = function(evt) {
d3.json("evt.data", function(json) {
......
.......More code.....
......
}
}
Ma questo non sembra funzionare, ma so che il cliente riceve i dati controllando il registro della console.
Inoltre v'è una funzione ricorsiva, che si appiattisce un documento JSON:
// Returns a flattened hierarchy containing all leaf nodes under the root.
function classes(root) {
var classes = [];
function recurse(name, node) {
if (node.children) node.children.forEach(function(child) { recurse(node.name, child); });
else classes.push({packageName: name, className: node.name, value: node.size});
}
recurse(null, root);
return {children: classes};
}
console.log(evt.data);
};
ws.onclose = function (evt) {
alert("Connection terminated")};
});
});
Se il mio JSON doc è piatta già allora presumo che non sarà necessario cioè:
{ID: 1, Name: 'my name', age: 65, car: 'Ford'}
D3 è completamente nuovo per me, quindi l'aiuto sarebbe apprezzato.
Grazie
Potresti riformattare il codice? Il secondo blocco di codice non ha senso per me ... – filmor
Correlati: http://stackoverflow.com/questions/13591891/d3-bubble-chart-not-rendering-in-real-time-through-web-socket – rosshamish
@filmor That la funzione è tratta dall'esempio del codice D3 all'indirizzo: https://github.com/mbostock/d3/blob/master/examples/bubble/bubble.js. Penso che sia usato per "appiattire" la struttura JSON se il documento JSON originale è annidato. – user94628