← 返回文章列表

利用轻量MQTT协议推送私人信息_附手搓windows客户端

cover_image

利用轻量MQTT协议推送私人信息,附手搓windows客户端

原创 集家嘴的壳玛 集家嘴的壳玛

在小说阅读器中沉浸阅读

这是我第二次换掉了gotify,之前的文章有介绍过。

Gotify,私人消息推送服务

企业微信API接收消息服务器配置

gotify虽然简单,但是需要我自用我的服务器资源和手机APP,关键是后台依然会杀死gotify客户端,至于Windows,gotify是没有客户端的。

对于我来说,我主要是为了监控我的一些自动化脚本,属于阅后即焚的需求。

之前在使用HomeAssistant的时候总是听说MQTT协议,一直没有时间了解,无知则畏之。但看了很多文章都说这个协议是非常轻量的。所以花了点时间研究了一下,发现确实如此。

白话MQTT协议:类似于B站,你订阅一个up主,那么这个up主每次更新都会自动推送给你新的视频。也类似于公众号,比如说你关注了我,那么我每次更新我的频道,就会推送信息到你的微信订阅号。

简化一下:发布者→MQTT服务器→订阅者

然后我发现现在网络上除了自建MQTT服务器,还有很多免费MQTT服务器,并且个人推送的话的完全使用不完。尤其是我这种签到和HomeAssistant的需求。而且这个协议确实非常轻量。

我现在的需求就是在我的安卓手机和windows电脑上有我的自动化更新的消息,就弹窗给我看看,然后我知道就关闭,这个需求非常简单,轻量,就非常适合MQTT,占用内存要非常少。

所以我很快的跑通了青龙通过MQTT协议发送到https://cloud.emqx.com(这是一个免费的MQTT服务器,不需要自己建服务器。)免费的用量足够我这样的轻量使用。

但是,我在选择MQTT客户端的时候犯了难,市面上能找到MQTT客户端都比较大,可以订阅多个主题(频道),还可以对主题(频道)反向发送信息,既是订阅者也是发送者。

在这个如今内存、硬盘价格齐飞的年代,我更加珍惜我的内存资源,于是我用AI很快的手搓了一段Python代码,然后就实现了接收MQTT信息并在windows的通知里显示,只是这样的方式我觉得不够优雅,每次都需要配置环境变量,或者要写代码自动启动,这样换了电脑还需要考虑新电脑上有没有Python环境,能不能正常运行。

于是我就想着让AI再帮忙写一个客户端,要知道现在的AI写Python和JavaScript基本上都可以很快的完成,没有错误,立马让程序跑起来,但是这两货的客户端都很大。上次使用go语言写了个为了删除文件,我居然写了个程序(8MB),我觉得还是挺大的,而且也不是太美观(比Python的GUI还是要好看点!)于是这次试着让AI使用RUST写一个tauri的程序。

天知道AI用来写go和rust有多难!所以这个小程序我又搞了几天,现在能够让这个MQTT客户端订阅我的青龙服务,并实现:

1.开机自动启动;

2.一次设置MQTT服务器信息,就自动记忆;

3.来了通知直接在windows通知里面显示;

这样我就不用再管它了。下面是测试画面:

至于安卓的客户端,我最近实在是太忙了,过段时间再来研究!

对了,如果观众老爷没走的话,我确实是忘记放上程序了。因为本身对rust不熟,搞了一下午还没有跑通GitHub action自动构建。只有放上本机构建的程序了,百度网盘里面取:

https://pan.baidu.com/fcb/s?share\_uk=790583911&share\_id=1tyV1yI7Usjq6lFImv3qwyTlxFnqPHeowFaxJHlqzKK

一路Next即可!

好了,不早了,拜了拜,要回家带娃了。