我的matrix之旅:从出生到死亡

天下苦腾讯久矣。当初被微信折磨的死去活来,又恰逢微信各种暴雷,于是想着使用一些技术清除微信。几经周折,看到了matrix.org这个项目。感觉非常适合,于是选型为matrix + bridge puppets。而这,也是痛苦的开端。

出生

起初,在这篇博客的教程下,搭出了第一个matrix服务并成功桥接了QQ。但是微信的桥接却出现了问题。wine运行十分不稳定,看着家里还有一台闲置的机器,于是便把微信安装到了台式机上并通过agent发送消息。

而这,是痛苦的开端之一。由于原博主duo的方案是使用websocket,文字、图片、语音、视频所有信息全部通过websocket链接在本地与服务器之间通信,最终导致了严重的延迟问题。往往一张图片的延迟在30s左右,这几乎是不可接受的延迟。而且常常由于网络问题,通过websocket发送大体积图片、视频时会中断连接,导致消息丢失。而agent并没有异常恢复机制,最终导致我经常漏掉了许多重要信息。

既然如此,不妨把duo的wechat bridge重写把,于是花了几天搓出来matrix-wechatmatrix-wechat-agent-rs,增加了断线重连、媒体消息直传matrix等机制。最终效果差强人意,但是勉强还是到达了可用的阶段。资源的消耗也在可以接受的范围。

docker-resources

稳定运行

经过一番折腾,最终将两个QQ与两个微信全部桥接到了matrix上,也稳定运行了一段时间。这段时间内,由于没有了微信、QQ繁杂的花式通知,世界清净了很多。我也如愿以偿了减少了许多无意义的刷手机行为。一切似乎已经步入正轨。

grafana

无尽的折腾

只能说好景不长。

最先暴雷的是磁盘。由于群聊天记录存在大量的图片、视频文件,最终很快就导致了我VPS上仅50G的磁盘爆满。于是想到之前用过的廉价S3存储 – Backblaze, 于是搜索matrix文档,找到了matrix对于S3的支持。

但是该支持又有一个问题,就是synapse是通过一个python文件实现的,而官方镜像中并没有该文件。于是只能自己打补丁,上传含s3的synapse镜像

docker-image

同时考虑到即使如此也可能会产生大量的媒体文件导致我每月支付高额的存储费用,于是我又添加了脚本,定期删除的媒体文件。同时删除本地的媒体从而减少VPS上的磁盘使用。

s3

同时,那段时间的使用产生了另一个问题,就是微信语音、视频通话。那段时间一方面由于工作原因,频繁的视频通话开会,另一方面家里人也偶尔会打电话前来问候。最终导致我不得不将微信重新下载回手机。这又直接导致了matrix的桥接失去了其原本的意义。

既然如此,能替代掉QQ也不错。

而又过去了几个月,又出现了磁盘爆满的情况。而这次,几乎无解 – 消息太多了,表信息满了。

disk-space

死亡

最终,我决定关闭matrix,下载回QQ与微信。此时,我又想起了不知道在哪看到的一句话,”社交,是腾讯最厚的护城河”。如果我有选择,我宁可使用更有效、更安全的whatsapp, telegram。但是很可惜,社交不允许我这么做。哪怕我如今身处国外,华人社区也坚持微信而非本地whatsapp等。微信依旧是我逃不掉的软件,哪怕它烂成一坨屎,哪怕它用尽手段要你的隐私。

最后,附上我在matrix上留下的最后一句话,用以纪念。

matrix

2022.12.1 - 2023.8.27