我有一个用 c++ 编写的程序,可以从这个板上读取值。无论如何,那部分并不重要。我所拥有的是不断变化的数据,我想将这些数据绘制成图表。我希望使用 Web 浏览器来显示数据,因为那里有很多用 JavaScript 编写的开源图形和图表。所以我的问题是从我的 C++ 程序向浏览器发送数据
我已经调查过了,UDP 在浏览器中还不可用,所以我必须使用 TCP。TCP websockets不是那么快,我正在考虑使用html5 localstorage。我的意思是让我的 c++ 程序写入 localStorage 上的数据库,然后 javascript 将等待该变量的值存在并发明某种协议来使其工作。本地存储非常快,例如:
<script type="text/javascript">
var counter = 0;
window.onload = function () {
function Test() {
counter++;
localStorage.p = counter + ""; // perform write
var read = localStorage.p; // perform read
if (read == "5000")
alert((new Date() - now)); // shows 45
else
Test(); // loop again
}
var now = new Date();
Test();
}
</script>
该脚本需要 54 毫秒,它读取和写入 5000 次! 这意味着下次我不会为浏览器创建插件,而是实现某种协议,使我能够使用 localStorage 交换信息。例如,我可以让浏览器等待变量 x 存在。一旦它存在,我就会通过浏览器创建一个变量 y,通知 c++ 程序它已准备好接收数据等等。localStorage 只是一个位于 C:\Users[USER]\AppData\Local\Google\Chrome\User Data\Default\Local Storage 上的 sqlite 数据库
我还没有在网上看到任何人使用这种方法。也许它太危险了,Sqlite 不能处理好多个线程,我会浪费时间创建这个程序。
那么我应该开始实施这个协议吗?我应该使用网络套接字吗?或者我应该尝试一下https://stackoverflow.com/a/10219977/637142吗?