S1 - 代码结构
使用go语言进行开发
使用bindata进行前端页面的打包和嵌入
build_all脚本用于打包release下的可执行文件,依赖于docker
windows版本编译需要依赖mingw32
linux版本编译时需要依赖libx11
目录结构如下:
.
├── code // 后端代码
│ ├── client // np-cli代码
│ │ ├── app // 项目主入口
│ │ ├── dashboard // dashboard页面代码
│ │ ├── global // 配置文件
│ │ ├── pool // 连接池
│ │ └── rule // 规则处理模块
│ │ ├── shell // shell模块
│ │ └── vnc // vnc模块
│ │ ├── define // windows下的API和常量定义
│ │ ├── process // vnc进程管理模块
│ │ ├── vncnetwork // vnc父进程与子进程通信协议
│ │ └── worker // 子进程处理模块
│ ├── network // server => client通信协议
│ ├── server // np-svr代码
│ │ ├── global // 配置文件
│ │ └── handler // 处理逻辑
│ └── utils // 公共代码
├── conf // 默认配置文件
├── contrib // 打包脚本等
│ ├── bindata // bindata封装程序,同https://github.com/go-bindata/go-bindata/blobmaster/go-bindata/main.go
│ └── build // 打包脚本
├── docs // 文档
└── html // 前端代码,dashboard、shell、vnc为对应功能的页面,其他目录均为第三方库
├── AdminLTE-3.1.0
├── bootstrap-4.6.1
├── dashboard
│ ├── AdminLTE -> ../AdminLTE-3.1.0 // 软链到AdminLTE库,下同
│ ├── bootstrap -> ../bootstrap-4.6.1
│ ├── fontawesome -> ../fontawesome-free-5.15.4
│ ├── jquery -> ../jquery
│ ├── js
│ └── templates
├── fontawesome-free-5.15.4
├── jquery
├── jquery-mousewheel
├── js // 公共js代码
├── shell
│ ├── jquery -> ../jquery
│ └── xterm.js -> ../xterm.js-4.14.1
├── vnc
│ ├── AdminLTE -> ../AdminLTE-3.1.0
│ ├── bootstrap -> ../bootstrap-4.6.1
│ ├── fontawesome -> ../fontawesome-free-5.15.4
│ ├── jquery -> ../jquery
│ └── jquery-mousewheel -> ../jquery-mousewheel
└── xterm.js-4.14.1
最后更新于