最近看了很多的关于聊天工具的问题,例如国内的无法端对端加密,国外的用不了,或者被插入广告之类的,怎么能避免这些烂事呢?是不是现在再自己挂一套来用呢?突然间记得之前自己曾经架过一套聊天系统玩过,只是很久以前了,所以现在市面上到底有什么系统可以用,完全都不知道,谷歌搜索之后发现,有很多可以自挂的聊天系统,不过很多的设计目标都大相径庭,仔细了解之后发现有两个系统还不错,有一个是MatterMost (后面简称MM),另外一个是Rocket.Chat (后面简称RC),这两个其实虽然是开源,但是也都有收费服务,只是MM非常倾向于销售企业版(E10,E20),所以免费版的功能真的很基(可)本(怜),而RC 就好很多,很多高级功能都是免费的。
MM主要是面向企业服务,所有有多团队概念,而且挂接企业内部应用的整合API服务,虽然我不太清楚到底有多少公司会使用的,但是从产品特色来看,企业级应用的结合的能力还是比较强的,但是这都不是我所需要的,我只是需要一个简单好用的系统,所有的用户加起来也不会很多,所以复杂的企业功能只能是累赘而已,Rocket.Chat就稍微自由点,或者可以说是轻量点,那就试试RC吧,嘿嘿。
从RC的官网的文档其实是蛮简单的,但是它是个Meteor application,后台使用了Node.js和MongoDB,这都是我所不熟悉的技术栈,我当时觉得心里有点没底,这个倒不是说安装的过程,而是以后出问题排错的过程比较麻烦,安装上看确实是不难,而且还有自动安装方式,使用SNAP的自动安装:
sudo snap install rocketchat-server
只是稍微尝试之后就开始报错,也懒得去解决为啥报错了,直接转回手动模式,毕竟出问题好解决。
手动的模式非常顺利,一路装完,启动服务,配置Nginx代理挂接http://127.0.0.1:3000,然后挂域名,挂Let‘s Encrypt的证书,轻车熟路之后就进入了初始的配置界面,然后又开始启用,整体来说还是不错的,然后又开始装各种客户端,然后给大家建账号开始聊天,我其实觉得跟大家说怎么用这个系统比装的时间费的多了,用了两天觉得还不错。
但是突然有一天,一个用户跟我说没法连接了,我一试果真报错,错误502,用SSH登录后台之后发现RC的服务器没问题,报错的日志说数据库没法写了,什么Index出错,MongoDB咱也不熟悉,看了一下log,网上一搜,也没啥直接的解决办法,绕了一大圈,干脆重启一下看看吧,重启错误消失,一切正常,但是感觉这样不行啊,因为实在是不熟悉这个数据库,如果总是出问题的话,那就折腾死了,记得在看MM的时候,好像用的是Mysql,这个数据库我非常熟悉,出问题八九不离十能搞定,所以犹豫了半天,最后决定再试一下MM,决定试试MM的另一个原因是MongoDB的系统资源占用也非常厉害,内存尤其是厉害,剩余的内存不足300M,这样比较危险哈。
MM的安装更加简单,这里必须要赞一下MM的文档的细致程度,人家给18.04和20.04两个Ubuntu的安装专门做了两个文档,嘿嘿,看完感觉不会对已有的系统有任何影响,但是我觉得还是应该先做一个备份,做好备份后记得系统的console提醒我可以升级20.04,想了想还是把UBUNTU的操作系统从18:04升到20。04吧,操作系统升级完,重新装了Mysql 8.0,接下来的安装就非常简单,很快就安装结束。
安装了之后开始进行配置,这里的配置稍微复杂一些,因为毕竟是号称企业级应用,所以说支持多租户(多团队)模式,然后每个团队里面可以设置多个不同目的的群(Channels)之类的东西,但是聊天就是聊天,搞清楚它的构架配置以后发现其实其他的功能也没有太多,而且所有的企业整合API和什么SSO的收费功能我都用不上,所以正好都关掉,系统的log功能也还算比较完善,所以用起来基本没啥报错。
MM的正式上线之后,再跑RC就没啥意思了,我就把RC的服务停掉,然后继续做了一个备份,只是RC的域名扔掉了可惜,毕竟挂DNS记录上SSL证书还是要点时间的,算了,挂个Webmin来监控系统使用量吧,这样所有的应用都回到了MYSQL的技术栈上,系统的使用内存也应声回落到差不多1G的样子。到这里过程就基本结束了。
下面比较这两个聊天系统,给跟我有同样需求的同学们一个简单的借鉴,当然这个比较纯粹是从我的个人需求来的,意思就是肯定既不专业,也不准确,所以大家看看就行了,千万别当真,哈哈哈
比较项 | MM(Mattermost) | RC(Rocket.Chat) |
技术栈 | GO, NVM, Node.js, Mysql | Meteor, NPM, Node.js, MongoDB |
用户功能 | 免费功能个人够用,企业功能都收费包括各种Plugin和提醒推送,支持外挂E2E加密 | 个人功能够用,但某些功能不够细致,支持1万次免费的提醒推送,部分大规模的企业功能免费,支持E2E加密。 |
界面 | 支持定制,支持多语言,支持内容翻译 | 支持多语言,有限定制 |
维护成本 | 非常方便,数据库是Mysql,支持Webhook和Rest API | 比较方便,数据库是MongoDB,支持Rest API,集群和HA免费 |
手机客户端 | 支持Android和iOS客户端 | 支持Android和iOS客户端 |
文章评论