js-middleware-for-mobile-agents

JavaScript Middleware for Mobile Agents Support

Usage no npm install needed!

<script type="module">
  import jsMiddlewareForMobileAgents from 'https://cdn.skypack.dev/js-middleware-for-mobile-agents';
</script>

README

My project's README

  • Create a new npm project
npm init
  • Install middleware module
npm install js-middleware-for-mobile-agents --save
  • Run the Server registry
node ./node_module/js-middleware-for-mobile-agents/lib/Server.js
  • Run the middleware
node ./node_module/js-middleware-for-mobile-agents/lib/Middleware.js
  • Create a Java script file
MobileAgent.js
  • Run the Mobile Agent through Middleware
node [path-to-Middleware] -a [path-to-mobile-agent]
node ./lib/Middleware -a ../test/MobileAgent.js

Table of Contents

Installing

This is a Node.js module available through the npm registry. Installation is done using the npm install command:

$ npm install js-middleware-for-mobile-agents

API

var api = require('./lib/Api.js')

Mobile agent structure

  exports.runAgent = function(){
    var api = this._api;
    console.log('Example with API 001');
  };

Usage examples

GetHostName function


  api.getHostName(function(err,result) {
    if (err) {
      console.log('Error: ' + err);
    } else {
      console.log('Host name for this device: ' + result);
    }
  });

GetAvailableHosts function


    api.getAvailableHosts(function(err,result) {
    if (err) {
        console.log('Error: ' + err);
    } else {
          console.log('Host List available: ');
        Object.keys(result).forEach(function (index) {
          console.log(result[index]);
          });
    }
    });

MoveTo function


    api.moveTo(this,'Host# 2',function(err,result){
      if (err) {
            console.log('Error: ' + err);
        } else {
            console.log('Result: ' + result);
        }
    });

Example example 1

exports.runAgent = function() {
  /*
  * Custom Code begin
  */
  this._name = "Scenario 001";
  var agent = this;
  console.log("Hello, World!");
  var hostList = ["Host# 1(::ffff:192.168.0.101)", "Host# 2(::ffff:192.168.0.103)", "Host# 3(::ffff:192.168.0.106)", "Host# 4(::ffff:192.168.0.105)", "Host# 5(::ffff:192.168.0.102)"];
  var host = "Host# 2(::ffff:192.168.0.101)";
  var api = this._api;
  var lastHost = this._lastHost;
  var newhost = 0;
  if (lastHost != NaN && lastHost != undefined) {
    newhost = (lastHost + 1);
  }
  this._lastHost = newhost;
  var next_host = hostList[newhost];
  var agent = this;
  setTimeout(function() {
      api.moveTo(agent, next_host, function(err, result) {
        if (err) {
          console.log('Error: ' + err);
        } else {
          console.log('\033[2J');
        }
      });
  },5000);
  /*
  * Custom code end
  */
};

Agent Example 2

exports.runAgent = function() {
  /*
  * Custom Code begin
  */
  this._name = "Scenario 002";
  var agent = this;
  console.log("Hello, World!");
  var host;
  var api = this._api;
  setTimeout(function() {
      api.getRandomHost(function(err, result) {
          if (err) {
            console.log('Error: ' + err);
          } else {
            host = result;
                api.moveTo(agent, host, function(err, result) {
                  if (err) {
                    console.log('Error: ' + err);
                  } else {
                    console.log('\033[2J');
                  }
                });
          }
      });
  },5000);
  /*
  * Custom code end
  */
};

Agent Example 3

exports.runAgent = function() {
  this._name = "Scenario 003";
  console.log("Mobile Agent running...");
  var hostList = ["Host# 1(::ffff:192.168.0.101)", "Host# 2(::ffff:192.168.0.103)", "Host# 3(::ffff:192.168.0.106)", "Host# 4(::ffff:192.168.0.105)", "Host# 5(::ffff:192.168.0.102)"];
  var api = this._api; var lastHost = this._lastHost; var newhost = 1;
  if (lastHost != NaN && lastHost != undefined) { newhost = (lastHost + 1); }
  this._lastHost = newhost;
  var macList; var next_host = hostList[newhost]; var agent = this;
  var source_arrive = this._source_arrive;
  if (source_arrive == NaN || source_arrive == undefined) { this._source_arrive = 0; }  
  if (source_arrive == 1) { console.log("MACs List"); console.log(this._macList);
  } else {
         require('getmac').getMac(function(err, macAddress) {
            if (err)  throw err
                if (agent._macList == undefined) {
                  macList =  macAddress;
                } else {
                  macList = agent._macList + " | " + macAddress;
                }
                agent._macList = macList;
                if (newhost == (hostList.length)) {
                  agent._source_arrive = 1;
                  api.moveTo(agent, hostList[0], function(err, result) {
                      if (err) {
                        console.log('Error: ' + err);
                      } else {
                        console.log('\033[2J');
                      }
                    });
                } else {
                      setTimeout(function() {
                        api.moveTo(agent, next_host, function(err, result) {
                          if (err) {
                            console.log('Error: ' + err);
                          } else {
                            console.log('\033[2J');
                          }
                        });
                     },5000);
                 }
          });
  }
};

License