目前,我正在尝试使用Plotly来制作一个实时饼图,其中包含来自websocket连接的数据。然而,我似乎无法将数据从套接字获取到图形中。现在,我看到了两种方法。一种是从onmessage函数中获取数据,比如向父函数返回值。另一种方法是将Plotly代码放入onmessage函数中。这两种方法目前都不起作用。我不打算在这个线程中讨论从onmessage函数中获取数据,因为这个线程是用于Plotly的,而不是websocket的。我将链接一个堆栈溢出线程,如果你对该部分感兴趣,我会在其中询问websocket问题。
JavaScript: Getting Values out of Websocket Functions
因此,关于我在将Plotly放入onmessage函数中时遇到的问题。由于某些原因,当我剪切并粘贴创建图形的代码到该函数中时,它会“冻结”程序。脚本将像往常一样运行,直到它生成图形,你可以看到它生成了图形,然后它就停在那里。整个代码会停止,因为它应该循环回到函数的开头,并更新页面上的活动文本,该流也会停止。如果你想看一看,我的代码在下面。
var pmsg = "null";
var ws = new WebSocket('ws://localhost:10011/');
ws.onmessage = function(event)
{
if(pmsg == 'QC1R1TR')
{
QC1R1TR = event.data;
var testing = document.getElementById('QC1R1TR');
testing.innerHTML = "Run Time: " + QC1R1TR;
}
pmsg = event.data;
var data = [{
values: [2, 1],
labels: ['TR', 'TNR'],
type: 'pie',
automargin: true
}];
var layout = {
height: 300,
width: 300,
margin: {"t": 0, "b": 0, "l": 0, "r": 0},
//showlegend: false
};
Plotly.newPlot('QC1R1Pie', data, layout);
}请注意,当绘图是静态数字时,当前不是变量的问题。当绘图在父函数中时,它可以工作,页面上的活动文本也可以工作。
在这方面的任何帮助都将非常感谢!
谢谢,卢克
发布于 2021-03-01 21:00:56
我找到了另一个解决方案,从websocket中获取数据。有关该解决方案的详细信息,请参阅其他线程。
作为参考,我再次将链接附加到下面的另一个线程。
https://stackoverflow.com/questions/66104834
复制相似问题