前言
昨天(18号)晚上去做核酸检测回来的路上无意间在App Store
中发现了一个名叫Nextcloud Talk
的应用程序,尝试使用Nextcloud
服务器地址和账号密码登录时却提示服务器端没有配置。
持着好奇与探索的态度在回到家后开始搭建与适配并花了一晚上时间研究其通信、存储的原理以及安卓手机无法推送的原因,最终把很多问题原因整明白了,在此简单记录一下。
安装
从nextcloud store官网下载talk组件并将其解压、拷贝至nextcloud
数据目录中的apps
文件夹下(解压后文件夹名为spreed
);
此处需注意,下载版本一定要对的上:
登录管理员账号,如图所示点击“应用”:
启用Talk
组件:
随后可通过管理员账号创建多个用户实现多用户使用了(注意存储空间由网盘和聊天文件共享,分配时注意不宜过少)。
这样就可以实现基本的使用了。
探索
经进一步了解发现其聊天文件(包括“按住说话”的语音)以文件的形式存储在自己Nextcloud
的Talk
目录下并可由用户自行管理,聊天文本内容直接在数据库中存放,语音和视频通话原理研究上则花费了大量的时间(竟然不走服务器流量)。
经过对网络活动中数据包流量的监听及反复测试和查阅资料得知:通话流量由服务端程序通过WebRTC
技术为双方基于TURN
或STUN
协议建立的端到端通信产生。这无疑大大提高了通话信息的传输效率和安全性。这篇文章和这篇文章较为详细地讲述了其工作原理。
此外关于消息推送还有一个大坑,开始阶段测试到iOS
和安卓的App
都无法推送消息通知(电脑端Chrome
调用系统通知始终正常),随后iOS
忽然正常了(猜想可能是因为Web
端登录或苹果对我的HTTPS
做ATS
验证需要一段时间),总之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
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/
版权属于:soarli
本文链接:https://blog.soarli.top/archives/629.html
转载时须注明出处及本声明。
nextcloud手机客户端和网页端都没有问题 也显示了talk talk网页使用也没有问题 但是talk 客户端为啥登录不了啊
建议检查网络连接、服务器设置,或者重新安装最新版Talk客户端试试
嘿,老哥,我装了以后只能发文字,不能发送文件、打电话。系统是centos7, docker,你的可以吗
我配这个的时候没有用docker,可以正常发送文件和打电话的