WebCMD

command module
v0.0.0-...-a65be8c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2017 License: GPL-3.0 Imports: 18 Imported by: 0

README

About WebCMD

WebCmd 允许你通过Web页面实时与本地控制台程序进行交互,获取输出并显示。 纯属本人熟悉go语言的练手小作品。

使用Stdin/out pipe与本地控制台程序交互,实现全双工异步无阻塞输入输出。 输出通过HTML5的WebSocket推送给浏览器

by wwcMonkey( https://github.com/wwc7654321)

DemoGif

可以看到Stdout与Stdin是双向无阻塞的

Install

go get github.com/wwc7654321/WebCMD

基于Go1.8 x64版本,其他版本应该也能跑,只要用到的库能在目标版本跑起来。 浏览器需支持HTML5 WebSocket

依赖以下库

go get github.com/astaxie/beego/session

go get github.com/axgle/mahonia

go get golang.org/x/net/websocket

LICENSE

GPL(GNU General Public License)

wwc7654321/WebCmd by wwcMonkey( https://github.com/wwc7654321)

TODO

练习作品,管挖不管埋

  1. http分发部分仅作最简单路由策略,根据路径分别分发给多路由匹配Handler、静态页文件服务器Handler、以及WebSocket Hander, 仅为了了解最近比较火的路由模式是怎么工作的。

  2. 源码中封装的cmdmgr.CmdSession 允许你批量管理多个进程交互实例,但目前webcmd仅使用了单个实例。 可以通过某标识符(如beego/session管理的sessionID),动态建立删除cmd进程实例。 甚至结合登录系统、Windows账户管理,实现多用户隔离操作。

  3. WebSocket回调输出,仅单路、无历史、无重传

  4. 回调输出偶现丢数据的现象,待排查

话说之前看go的文档还不觉得,一上手就发现,开发一些小工具,开源轮子多真的是舒服,走哪都有前人留的路子。也难怪各位对此如此热衷。

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL