いずれの場合も、一定のインターネットアクセスを備えたコンピューターが必要です。そのコンピューターでサーバーと転送ポートを上げます(nginx + node.jsを使用しました)。
方法1(監視サーバーへのアクセスなし)
衛星監視端末の本質は、所定の周期で座標を受信、記録し、監視サーバーに送信することです。 サーバーと端末の間をくさびしようとします。 これを行うには、デバイスをフラッシュする必要があります。 これがどのように行われるかは、メーカーのウェブサイトで確認できます。
サーバーとしてのコンピューターのアドレスを示します。 これで、デバイスからのすべてのデータはサーバーではなく、コンピューターに送信されます。 私の場合、ポート7113でこのポートをリッスンする必要があります。必要に応じて、データを変更し、既に監視サーバーに送信します。 これを行うために、node.jsで簡単なスクリプトを作成しました。 このスクリプトは、クライアントとサーバーを単純に挟み込み、コンソールに送信されるデータを表示します。
サーバーコード
var net = require('net'); var server = net.createServer(function(socket) { var client = new net.Socket(); client.connect(, '7113', function() { console.log('Connected'); }); socket.on('data', function(data) { console.log('> ' + data); client.write(data); }); client.on('data', function(data) { console.log('< ' + data); socket.write(data); }); }); server.listen(, '7113');
走行距離を増やすには、データを変更する必要があります。 たとえば、端末から10回ごとにメッセージが送信されるたびに、わずかに変更された別の前のメッセージをサーバーに送信します。 サーバーにとっては、まるで車が瞬時に停止した後、すぐに前進したかのように見えます。 この最も単純なアルゴリズムは、燃費を20%向上させます。 同時に、座標は正しいと見なされ、速度は増加せず、これらの不正は経路上に表示されません。 1つのルートが別のルートと100%重なっています。
2番目の方法(サーバーへのアクセス)
監視へのアクセスがウェブインターフェースを介して行われ、サーバーコードにアクセスでき、このコードが暗号化されていない場合、何も発明する必要はありません。 必要なものが得られるようにコードを変更します。
3番目の方法(最終トラフィックをそれ自体に渡す)
監視サーバーに直接アクセスできない場合は、クライアントトラフィックを自分で渡すことができます。 そして、送信されたデータを変更します。 このために、node.jsも使用しました。 httpモジュールを使用して、サーバーを上げます:
var server = http.createServer(function(request, response) {...}).listen(80)
サーバーにリクエストを送信する場所:
var proxyRequest = http.request(options)
アドレス、ポートなどをパラメーターとして指定します(githubで例を参照できます)。 そして、処理します(必要に応じて、サーバーの応答を変更します)。
proxyRequest.on('response', function(proxyResponse) {....}
監視プログラムで燃費を変更するいくつかの方法を次に示します。 誰かが興味を持っているなら、私はより詳細に書くことができます。
この記事は、車両監視システムの安全性に注意を引くことを目的としています。