Node-Web-Console(以下简称 NWC)是一个基于 Node.js 开发的网页版 shell 应用,其想法来源于实验室 SDN 相关项目的一次组会讨论,需求大致是在网页中嵌入 shell,然后实现从前端页面展示的网络拓扑中直接进入虚拟机节点进行简单的管理。具体实现上则参考了 web-console,一个基于世界上最好的语言开发的项目。
先来一张界面的截图:
从使用体验来看,NWC 与真正的 shell 并无太大区别。当然,这要感谢 jquery.terminal 插件作出的努力。而从实现原理层面来说, NWC(以及 web-console)并不复杂,其底层通信基于 HTTP 协议之上的 JSON-RPC 2.0 规范实现。JSON-RPC 是一个无状态且轻量级的远程过程调用(RPC)协议,对其不太了解的同学可以参见 JSON-RPC 2.0 Specification 或者 中文翻译版。NWC 的后端 server 接收到用户输入的 command 后开启子进程并执行之,然后将结果返回即可。
除此之外,NWC 还具有以下特性:
当然 NWC 目前还存在一些问题,比如不能执行 vi、ping 等需要等待用户输入或者无穷地执行一些操作的命令。这是因为目前版本的 NWC 底层通信的 RPC 基于 HTTP,其特性决定了服务端只能被动响应客户端的请求而无法主动多次推送结果。下一版的迭代中会尝试用 websocket 替换 HTTP 来解决这一问题。
最后,项目地址在此:https://github.com/ChrisCindy/node-web-console 。欢迎 star,欢迎拍砖。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有