前情提要:
https://www.v2ex.com/t/750475https://www.v2ex.com/t/605207--------
Delta Chat 用了大半年的感受就是 bug 实在是太多了 (Windows 最多, Andorid 次之), 我甚至体验到网上很多人说的 "Windows 10 每更新一次都会带来新的 bug" 的感觉 (然而 DC 每次更新也都不痛不痒). 有时 Delta Chat 上一条本该立刻就收到的消息, 结果过了好几个小时才收到. 感觉这玩意根本达不到 "能用" 的程度.
以前的帖子里有人再次提到 Rocket.Chat; XMPP 和 Matrix.
于是我接下重试之前失败过的 Rocket.Chat. 这次部署成功, 但试用不到 1 小时就发现: 它在 Android 端不能后台推送通知 (只有当界面在前台显示才能在顶部显示通知, 而且这个通知横幅是嵌入界面内部的), 遂放弃 (对 Rocket.Chat 我反正是彻底死心了);
然后是 XMPP 协议的 ejabberd, 服务端问题不大, 客户端虽然选择很多, 但问题和 Delta Chat 一样, 大多数都很简陋. 挑了好久最后在 Android 上选择了 Conversations (使用过程中也发现了一些问题但我忘了是哪些), Windows 上是 Gajim (让我搞不懂的操作逻辑; 经常崩溃).
最后重试 Matrix 协议的 Synapse. 不知道我做了什么操作, 部署竟然很快就成功了. 对我这种 Linux 菜鸟简直就是惊喜. 为避免未来忘记部署的方法, 我一边实战, 一边写了一份非常详细的 step by step 教程备用.
我主观判断 Element (原 Riot) 的完成度在众多 Matrix 协议 IM 客户端中是最高的, 桌面版和 DC 一样是 Electron App (我不是职业开发者, 对 Electron 的认识只停留在用它编写的软件, 界面放在一个阉割过的 Chromium 内部并且支持跨平台). DC 上蛋疼的通知推送; 消息同步; 大文件传输; 图片粘贴; 托盘图标等问题, Element 统统不存在.
Android 版有不依赖 FCM 的 F-Droid 分支可选. 即使是国产安卓, 经过一番设置 (电池优化 + 通知权限) 也能收到通知推送.
iOS 就不清楚了, 我手上只有一个 iPhone 4S, 没法测试.
现状:
3 部 Android 手机 (未来还会增加); 1 台 Windows 10 笔记本; 1 台 Windows 7 台式机都用上了 Element.
还有一台 Windows 8.1 平板电脑, 因为桌面版 Element 不支持 32 位 Windows 的关系, 只能在浏览器使用 Element-web.
Docker 里额外部署了 matrix-commander, 能用命令行发送消息.
当然 Element 并不完美, 试用了 3~4 天后发现以下问题:
* 私聊聊天室头像有时会消失 (Windows; web);
* 无法更换头像 (Android);
* 无法记忆左侧边栏的宽度; 分类预览和项目排序, 这些设置会因为重新登录而丢失 (Windows; web);
* 无法默认禁用端到端加密 (Android; Windows; web, 双方同时在线的情况下因为要私聊而创建的房间是强制启用端到端加密的, 一旦启用就不能禁用. 看了一些文档说是需要服务端设置才行, 但我还没搞懂怎么弄);
* 手机与手机之间的语音呼叫大部分时候在连接阶段都非常慢 (Android, 同样的服务器, 同样的网络条件, 手机与 PC 却能瞬间接通);
* 消息列表右侧会强制预留一大片空白, 可能留给已读回执的显示 (Windows; web);
* 不支持设置详细的在线状态和个人简介 (Android; Windows; web);
* 界面语言总是被重置为英文 (会发生在重启 Element 时, 在 Windows 10 上发现, Windows 7 没有);
* 窗口坐标被重置 (会发生在重启 Element 时, 在 Windows 10 上发现, Windows 7 没有);
以上问题的发现, 均以使用自建的服务器为前提.
因为已经阶段性地满足了需求, 折腾自建 IM 服务大概要告一段落了.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/823651
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.