管理C++进程或服务,以及远程命令执行。包含AdminModule(lib,用于目标进程),AdminService(web交互),web(前端)三个工程。 DEMO: http://admin.mulanshanzhuang.com
在原有进程中包含AdminModule库,初始化后即可连接AdminService,windows可以启动以下批处理测试服务:
AdminModule\code\test\app\start_connect_test_svr.bat
AdminModule.initAdmin( AdminService host:port, 片区, 进程类型, SvrID );
AdminModule.updateAdmin();
AdminModule.releaseAdmin();
// I want to create a function that computes the square of the parameter and display the result
NLMISC_COMMAND(square,"display the square of the parameter","<value>")
{
// check args, if there s not the right number of parameter, return bad
if(args.size() != 1) return false;
// get the value
uint32 val;
fromString(args[0], val);
// display the result on the displayer
log.displayNL("The square of %d is %d", val, val*val);
return true;
}
pwd
/xxxx/xxxx/AdminService/code
cd ..
mkdir build
cd build
cmake ../code
make
make install
创建build目录,解压 external.7z,external中是vs2012依赖库,目录结构如下:
AdminService\build
AdminService\code
AdminService\external
使用vue.js ,依赖工具
nodejs // https://nodejs.org/en/
yarn // npm install -g yarn
// yarn config set registry https://registry.npm.taobao.org
@vue-cli // yarn global add @vue/cli
安装后,进入目录 ./AdminService/AdminWeb/ 输入yarn install 更新项目的依赖库。 开始运行中输入 vue ui 启动控制台,加载项目AdminWeb。
修改连接到的AdminService:
Vue.use(VueNativeSock, 'ws://admin.mulanshanzhuang.com:10390',
AdminModuel
void sendMsg ( const CMessage& ); // 发消息到AdminService
void addCallbackArray (const TCallbackItem *callbackarray, sint arraysize); // 回调
AdminService
AdminService\tools\protobuf // 与前端通信的proto目录
AdminService\code\EVA\server\msg.xml // web消息过滤&proto反射
m_CallbackAdminModule.addCallbackArray // AdminModule回调注册
m_CallbackWebSocket.addCallback // web回调注册
web
switch(json['msgtype']) // 收消息处理
this.$socket.send( JSON.stringify(MsgExecCommand) ); // .vue 发送消息到AdminService