soarli

Nextcloud Talk配置使用笔记
前言昨天(18号)晚上去做核酸检测回来的路上无意间在App Store中发现了一个名叫Nextcloud Talk...
扫描右侧二维码阅读全文
19
2022/02

Nextcloud Talk配置使用笔记

前言

昨天(18号)晚上去做核酸检测回来的路上无意间在App Store中发现了一个名叫Nextcloud Talk的应用程序,尝试使用Nextcloud服务器地址和账号密码登录时却提示服务器端没有配置。

持着好奇与探索的态度在回到家后开始搭建与适配并花了一晚上时间研究其通信、存储的原理以及安卓手机无法推送的原因,最终把很多问题原因整明白了,在此简单记录一下。

安装

从nextcloud store官网下载talk组件并将其解压、拷贝至nextcloud数据目录中的apps文件夹下(解压后文件夹名为spreed);

image-20220220024125508

此处需注意,下载版本一定要对的上:

image-20220220025318060

登录管理员账号,如图所示点击“应用”:

启用Talk组件:

image-20220220024538668

随后可通过管理员账号创建多个用户实现多用户使用了(注意存储空间由网盘和聊天文件共享,分配时注意不宜过少)。

这样就可以实现基本的使用了。

探索

经进一步了解发现其聊天文件(包括“按住说话”的语音)以文件的形式存储在自己NextcloudTalk目录下并可由用户自行管理,聊天文本内容直接在数据库中存放,语音和视频通话原理研究上则花费了大量的时间(竟然不走服务器流量)。

经过对网络活动中数据包流量的监听及反复测试和查阅资料得知:通话流量由服务端程序通过WebRTC技术为双方基于TURNSTUN协议建立的端到端通信产生。这无疑大大提高了通话信息的传输效率和安全性。这篇文章这篇文章较为详细地讲述了其工作原理。

此外关于消息推送还有一个大坑,开始阶段测试到iOS安卓App都无法推送消息通知(电脑端Chrome调用系统通知始终正常),随后iOS忽然正常了(猜想可能是因为Web端登录或苹果对我的HTTPSATS验证需要一段时间),总之iOS能推送了就是好事。

关于安卓端无法推送猜想了很多种可能的原因,对于服务器端和客户端尝试了包括但不限于“安装插件、重置账户、检查App侧所有可能相关权限、检查Web侧所有可能相关权限、检查数据库侧所有可能相关权限、清空数据、新建用户、更换App版本、更换设备”等一切可能的操作。结果都是徒劳,并且安卓版本在第一次登录成功后都会快速闪过一行包含“消息通知已禁用”字样的提示。在互联网上搜索相关问题,中文资料完全找不到(甚至连关于Nextcloud Talk安装配置都很难寻找)。没办法,只能硬着头皮结合着翻译参考大量的英文信息资源。

最初花费了大量的时间试图通过nextcloud官方社区和官方github issues寻找解决方案以解决问题,后来直到看到这篇文章才明白其安卓客户端的消息推送需要依赖Google Play的推送机制才能完成。但是由于众所周知的原因此功能无法完成调用。真可谓碰了一鼻子灰,真希望nextcloud可以在后续安卓客户端的维护中可以加入通过驻留后台等方案获取通知(也考虑一下中国大陆用户的使用体验呗)。

评价

总体使用体验还是不错的,尤其是文件管理和通话模块真的相当优秀了。

希望官方可以在后续版本中针对更多场景不断优化功能和完善用户体验。

参考资料:

https://www.jianshu.com/p/5523781bf806

https://www.cnblogs.com/smlile-you-me/p/13575221.html

https://webrtc.org.cn/why-turn/

https://developer.aliyun.com/article/243478

https://zh.wikipedia.org/wiki/WebRTC

https://zh.wikipedia.org/wiki/TURN

https://zh.wikipedia.org/wiki/STUN

https://www.agora.io/cn/community/blog-126-category-22859

https://www.ruanyifeng.com/blog/2017/05/websocket.html

https://michaelyou.github.io/2018/08/01/%E7%9C%9F%E5%AE%9E%E4%B8%96%E7%95%8C%E4%B8%AD%E7%9A%84WebRTC/

http://blog.sina.com.cn/s/blog_8db6019e0102wn1z.html

https://github.com/nextcloud/spreed/issues

https://github.com/nextcloud/talk-android/issues/1498

https://community.e.foundation/t/push-notifications-for-nextcloud-talk/20894/6

https://help.nextcloud.com/t/talk-email-notification-for-new-messages/98334

https://www.reddit.com/r/NextCloud/comments/l4kky2/how_to_make_nextcloud_talk_notifications_work/

最后修改:2022 年 02 月 21 日 11 : 55 AM

发表评论