0

我有一个用 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吗?

4

1 回答 1

0

I would go with node.js as middleware from your C++ to the browser, instead of using directly websocket (been there done that) go with http://socket.io/ that will make your life much easier :)

于 2013-02-05T04:45:56.607 回答