Skip to content

AielloChan/echoo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

34aeebe · Mar 17, 2021

History

21 Commits
Mar 17, 2021
May 14, 2018
Mar 17, 2021
Mar 17, 2021
Mar 17, 2021
Mar 17, 2021
May 14, 2018
May 14, 2018
Mar 17, 2021
Mar 17, 2021
Mar 17, 2021
Mar 17, 2021
Mar 17, 2021
Mar 17, 2021
May 14, 2018
May 14, 2018

Repository files navigation

main

Echoo

一个用 Go 语言编写的 echo 服务器

四种工作模式

echo

> echoo -m echo
INFO[0000] Echoo is serving...
INFO[0000] You can access at http://0.0.0.0:8888 or http://127.0.0.1:8888

此模式也是程序默认运行模式。此模式开启后,会输出一个 url(如上图中的 http://127.0.0.1:8888)。 在浏览器中打开这个地址,便能够看到,你当次请求页面的相关信息,包括 url 参数、header 等等。

试试改变 url 参数,并再次访问,它会将你每次的请求信息都以 html 形式返回到浏览器上。

terminal

> echoo -m terminal
INFO[0000] Echoo is serving...
INFO[0000] You can access at http://0.0.0.0:8888 or http://127.0.0.1:8888

该模式会不是像 echo 模式那样输出在浏览器中,而是直接在命令行中输出访问 url 时的请求信息。

file

> echoo -m file
INFO[0000] Echoo is serving...
INFO[0000] You can access at http://0.0.0.0:8888 or http://127.0.0.1:8888

其实这个模式就是将上面 terminal 中输出的内容保存在文件里(以后会将此模式直接迁移为 log, 从而在所有模式中使用此功能)。它默认将日志存放在 logs/log.txt 文件中,你也可以在后面 以 -f 自定义日志文件地址 来自定义地址。

websocket

通过 websocket 技术,你可以将指定链接被访问时使用的请求信息,直接显示在另一个页面中,且是实时更新的

> echoo -m ws
INFO[0000] Echoo is serving...
INFO[0000] You can access at http://0.0.0.0:8888 or http://127.0.0.1:8888

这个是最有意思,也是覆盖场景最多的模式。

当启动这个模式后,你需要做以下几步操作:

  1. 先在浏览器中访问上面输出的地址,如(http://127.0.0.1:8888)
  2. 服务器会自动给你分配一个测试地址,并且将你刚才访问的页面重定向到分配给你的测试页面,如(http://127.0.0.1:8888/4bf26e4f-7324-4942-a21c-706575cdb34d/client)
  3. 在当前的浏览器页面上,你能看到你刚才请求这个页面的相关信息,同时,你能发现,页面上多了一个名为 Target 的板块,如下图:

ws mode

4. 试着将该 url 设置为你服务器访问的目标地址(如 nginx 中的 proxy_pass 目标地址等,或者可以直接在另一个浏览器中访问该 **Target url**) 5. 大功告成,每次访问 **Target url** 的请求信息,都会在第 2 步中打开的那个页面中显示,并且是**实时更新**

有了这个功能,我们调试服务器又简单了不少😼

./echoo -v 或者 ./echoo -h 获得详细信息

Screenshot

main

Download

下载地址

源码构建

所有构建成功的可执行程序都存放在 dist 目录下

git clone https://github.com/AielloChan/echoo.git
cd echoo
# 下面这条命令是将静态资源打包
./package.sh
./build.sh
./echoo

(Windows 运行后会有一些奇怪的字符显示,这是因为颜色字符在非 TTY 终端下输出错误的问题,如果你有好的解决方案,请不惜赐教)

Have Fun!