0

C プログラムの出力をコンソールに表示する代わりに、ajax 呼び出しで使用するために、それを php ファイルに書きました。

char data[] = "ONLINE";

FILE *samplephp = fopen("/var/www/web.php", "w");
fprintf(samplephp, "<?php echo '%s'; ?>",data);
fclose(samplephp);

ajax 呼び出しの使用

    $.ajax({ url: '/var/www/web.php',
         data: {action: 'test'},
         type: 'post',
         success: function(data) {

                      if(data=="ONLINE"){

$('body').append('ONLINE');

}else{

$('body').append('OFFLINE');

//loop and wait for the data to become "ONLINE"

}
                  }
});

ajax 呼び出しは、データがオフラインからオンラインに、またはその逆にオフラインからオンラインに変更されるまで、web.php を読み取り続ける必要があります。これどうやってするの?

4

1 に答える 1

2

この JavaScript を試してみてください。さらに、PHP スクリプトを使用する必要はないと思います。シンプルなプレーン テキスト ファイルで要件を満たすことができ、はるかに高速です。

var fetchStatus = function() {
$.ajax({ url: '/var/www/web.php',
     data: {action: 'test'},
     type: 'post',
     success: function(data) {
         if(data=="ONLINE"){
             $('body').append('ONLINE');
         }else{
             $('body').append('OFFLINE');
         }
         setTimeout(fetchStatus, 5000); //Fetch status every 5 seconds
     }
});
};
fetchStatus();  // Start loop

リアルタイム アプリケーションの場合は、WebSocket などの「サーバー側プッシュ」を実装したものを試す必要があります。私はPHP で書かれたWrench WebSocket サーバーを使用しています。独立したプロセスとして実行されているため、C アプリと通信するための名前付きパイプやソケットなどの方法を見つける必要があります。ブラウザ側の WebSocket appの例を次に示します。

于 2013-05-19T09:01:42.957 に答える