这个服务器监控微信小程序,有点意思

2020-05-13 18:09:34 +08:00
 jerrodpoole

写在前面

想写一个服务器监控的网页供自己用,突发奇想能不能用小程序实现。然而遇到了一些问题,众所周知小程序请求地址必须在开发信息中手动报备并且要求域名备案。而我想实现的是可以动态添加节点,并且通过小程序直接连接到服务器,不经过第三方服务器。琢磨了一段时间做了这个,可以实现小程序和服务器的点对点连接。

特点

原理

这是一个黑魔法( hhh 开玩笑

原理很简单,是巧妙运用了小程序 image 组件的 bindload 接口,当图片加载成功时会返回图片的宽和高。也就是说一个图片能够返回两个数值,前后端约定好请求 API 后可以动态创建 image 获取一系列数值。

注意这个接口是不要求图片地址是备案域名,不用在小程序开发信息中报备。但是这种信息传递方式比较低下,只适合传递少量的信息,但是对这个需求来说足够了。

但是直接传递大体积的二进制图片很浪费带宽,解决方案是后端动态生成 svg 图片。也就是说,动态返回下面这种形式的文字信息:

<svg width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg"></svg>

详细的实现可以看这个文件

截图给你

不是所有人都有空去打开小程序,截个图放这里,长这样:

节点列表界面

自定义主题样式界面

小程序二维码和后端 github 地址

扫码或者微信搜索 miniStatus 小程序

后端项目地址:https://github.com/axipo/mini-status

(顺手求个 star

11400 次点击
所在节点    分享创造
93 条回复
xiaominglui
2020-05-14 17:41:14 +08:00
学到了,楼主阔以
uuker
2020-05-14 17:45:21 +08:00
已 star
winglight2016
2020-05-14 17:47:11 +08:00
@zhw2590582 小程序严防死守啊,没法。。。要是能直接获取到缓存图片也可以的
HuberyPang
2020-05-14 17:50:27 +08:00
你们跑起来了吗 为啥我的运行出错呀 我运行 mini-status 报错 系统:VMware ubuntu:16.04

https://s1.ax1x.com/2020/05/14/YBHcD0.png
topc101
2020-05-14 17:59:21 +08:00
牛皮~!!
dxgundam01
2020-05-14 18:44:37 +08:00
想用来监控我的 openwrt,提示 “[错误] 当前系统为 不在支持的系统列表内,安装中断”
Xusually
2020-05-14 18:48:49 +08:00
骚年,思路轻奇,👍
Maboroshii
2020-05-14 19:01:48 +08:00
把二进制 base10 一下。。。 岂不是
jerrodpoole
2020-05-14 19:09:01 +08:00
@HuberyPang #84
@dxgundam01 #86

wget https://gist.githubusercontent.com/axipo/81e148e47f4a02892c22e76339b68b63/raw/4ae1fc7f1ccc42ee6a4537358e41c42b415725bd/mini_status_easy_install.sh && chmod u+x mini_status_easy_install.sh && ./mini_status_easy_install

临时写了个方便安装的脚本,如果有问题的话到对应的 gist 下反馈吧(可以顺便帮忙测试下...
guyskk0x0
2020-05-14 19:51:36 +08:00
width 和 height 有大小限制吗?没限制的话是不是可以传更多信息?
ShayneWang
2020-05-15 17:06:35 +08:00
你好骚啊~
vcode
2020-05-15 18:51:13 +08:00
妙啊
Achiii
2020-05-23 15:19:17 +08:00
学会了!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/671337

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX