0

このボードから値を読み取る c++ で書かれたプログラムがあります。とにかくその部分は重要ではありません。私が持っているのは、常に変化しているデータであり、そのデータをグラフ化したいと考えています。JavaScript で書かれたオープンソースのグラフやチャートがたくさんあるので、Web ブラウザーを使用してデータを表示したいと考えていました。だから私の問題は、私のC ++プログラムからブラウザにデータを送信することです

私はすでに調査しましたが、UDP はブラウザーでまだ利用できないため、TCP を使用する必要があります。TCP websocket はそれほど高速ではなく、代わりに 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 が存在すると、ブラウザによって変数 y が作成され、データを受信する準備が整ったことなどが C++ プログラムに通知されます。localStorage は、C:\Users[USER]\AppData\Local\Google\Chrome\User Data\Default\Local Storage にある sqlite データベースです。

このアプローチを使用している人をオンラインで見たことがありません。多分それはあまりにも危険で、Sqlite は複数のスレッドを適切に処理できないため、このプログラムを作成するのに時間を浪費することになります。

では、このプロトコルの実装を開始する必要がありますか? Websocket を使用する必要がありますか? または、 https://stackoverflow.com/a/10219977/637142を試してみる必要がありますか?

4

1 に答える 1

0

C++からブラウザーへのミドルウェアとしてnode.jsを使用します.websocketを直接使用するのではなく(それが行われている) http://socket.io/を使用すると、あなたの人生がはるかに楽になります:)

于 2013-02-05T04:45:56.607 に答える