我打算绘制我的直播数据。使用plotly https://github.com/chintanp/node_serial_uC/blob/master/stream_hum.js works,我可以在一个唯一的(和随机的)URL(如https://plot.ly/~chintanp/107)上实时绘制和更新数据(这是一个示例响应URL,现在可能不工作),但是我在对函数调用plotly.plot(...)
的响应中得到的这个URL随着服务器的每次新运行而改变为一个新值。
是否有一种方法可以将此URL设置为固定值,以便每次我重新启动节点服务器时它不会改变?
您要做的是覆盖或扩展固定文件名的现有情节。这样,每次调用Plotly.plot
时,它都会写入数据库中可通过固定URL访问的相同plot。使用当前版本1 API(您正在使用的API)实现此目的的方法是为每次运行传递相同的filename
。
var plotly = require('plotly')('username','apiKey');
var data = [{x:[], y:[], stream:{token:'yourStreamtoken', maxpoints:200}}];
var graphOptions = {fileopt : "overwrite", filename : "yourfilename"};
plotly.plot(data, graphOptions, function() {
var stream = plotly.stream('yourStreamtoken', function (res) {
console.log(res);
});
someReadableStream.pipe(stream);
});
每次启动服务器时,"yourfilename"
应该是相同的。还要注意,fileopt
被设置为"overwrite"
。这将清除流缓冲区中的所有现有数据。如果您将fileopt
设置为"extend"
,它将把您正在流式传输的新数据附加到上次运行时仍然保留的任何数据上。
我发现在开发过程中最好使用"overwrite"
,而在生产中通常使用"extend"
是有意义的(这样您就可以从tcp断开中恢复)。