逃离微信——Matrix, Synapse, Riot

实际上在微信出现(火起来?)之前,我就一直在寻找科学的点对点即时通讯方案。这应该也是我不少的奇怪执念之一。

高中还在330的时候发现了Windows XP上的 net send 命令,甚至和nax同学一起开发了一个C语言命令行小程序,可以在330的内网里聊天。当然这种方法在毫无公网IP的国内很难实际使用,所以很快就放弃了。后面各种shit happens,也就逐渐忘记了这件事。

前几天上班摸鱼()的时候神经抽搐又想到这个问题。脑子里最先冒出来的是IRC,但很快就否定掉了。因为IRC是聊天室,天生不是为了点对点。几番跳转页面之后,我发现了Matrix这个新大陆。

就像官网上写的,Matrix是一个开放的去中心化即时通讯协议。除了去中心化以外,还有一个宣传的重点是原生点对点加密。再加上Apache协议,至少看上去很符合我的需求。

简单来说每个人都可以自己建一个通讯服务器,通过服务器之间的联结(federation)来实现不同服务器上用户的通讯。每个服务器都对自己的用户有完全的自治权,也可以自由地选择与哪些服务器联结。也就是说,既可以建立一个完全私有的内部通讯系统,也可以形成一个全球化的聊天网络。

Synapse是Matrix团队开发维护的样板服务器实现(reference server implementation),最近发布了1.0版本。不过文档还非常缺乏,没有网管基础的人(比如我)要搭建起来会比较痛苦。搭建过程就不写了,真的有空的话,写博客不如去贡献官方文档。

搭建好服务器之后,就可以用客户端(client)聊天了。目前似乎只有Matrix团队自己开发的样板客户端Riot有手机端,也是最近刚结束beta测试发布了1.0版本。基本的功能还比较齐全,也比较稳定。(不过Android团队似乎放弃了之前的应用,正在用kotlin开发一个新的。一般我对这种折腾是比较警觉的,毕竟有Windows Phone的前车之鉴。)

总的来说idea很棒,具体的解决方案,包括协议和服务器/客户端实现还需要很多打磨。目前的话在某些应用场合(比如和特定的人/组织联系)取代常规的通讯工具是可行的。

虽然对我来说是新大陆,不过类似的东西好像之前就有一些。Matrix最近拿到了投资,似乎法国政府也要用Synapse搭建政府内部通讯系统(官网新闻),整个体系看起来非常promising。

实际上微信作为聊天应用的体验应该是好于目前的Synapse + Riot的。只是微信(在国内)似乎成了唯一的通讯工具,一切的交流都发生在微信上。执着于远离微信,大概只是想用更私人的方式聊天,就像把工作和私人帐号分开。(短信和书信大概也是同样的道理。)