1 概述
最近在调研一些开源的即时通讯方案,也许会后续更新一些新的使用测评。
2 vocechat
并不是完全的开源,似乎仅提供客户端的代码。文档也仅是提供了部署和使用的说明,开发源文件这些似乎并没有介绍。
官方主页 https://voce.chat/
优点
- 体积小,部署快,网页加载也迅速
- 满足基本的通信需求
- 发文字(可通过markdown排版)
- 发文件(不限制格式)
- emoji
- 提供restful-API文档,方便自己定制bot(和客户端)
- 支持通过挂件SDK内嵌到网页,实现在别的网页中嵌入聊天频道(适合那种弹出式客服?)
<!-- 将以下代码放置于你的网页中 -->
<script
data-host-id="1"
data-close-width="48"
data-close-height="48"
data-open-width="380"
data-open-height="680"
src="http://your.server.domin/widget.js"
async
/>
缺点
- 服务端不开源、提供bin文件
- 20用户以下免费、20-100用户收费 $99 、不限制用户收费$499
- 对话同步性不佳,已删除的信息有时会在新的客户端刷新出来。(可能是我配置不对?
- 移动端app 难用,不如网页版轻便好用,但移动端网页也存在适配问题
- 服务端数据管理不透明,无法方便定位数据
3 nextcloud talk
基于开源的网盘应用nextcloud,代码仓库,可根据官网的介绍部署安装
部署好网盘后,可以在网盘的应用商店中方便的下载安装即时通讯组件talk
优点
Why is this so awesome?
💬 Chat Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mentioning other participants.
👥 Private, group, public and password protected calls! Invite someone, a whole group or send a public link to invite to a call.
💻 Screen sharing! Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this Chrome extension).
🚀 Integration with other Nextcloud apps like Files, Calendar, User status, Dashboard, Flow, Contacts and Deck, with more to come.
🎡 We’re not reinventing the wheel! Based on the great simpleWebRTC library.
🌉 Sync with other chat solutions With Matterbridge being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.
缺点
- 基于网盘应用nextcloud, 单看即时通讯的话,有些冗余
- 加载网页js的速度较慢(对服务端带宽要求高,可通过架设CDN解决)
- 通话和视频对用户端的带宽和CPU要求高
Talk works peer to peer, that is, each participant sends an end-to-end encrypted stream to every other participant and receives one stream per other participant. Bandwidth usage grows with the number of participants.
A single video stream currently uses about 1 Mbit/sec and the total required bandwidth can be calculated as follows:
1 Mbit/s * (participants - 1)
This means that in a call with 5 participants, each has to send and receive about 4 Mbit/sec. Given the asymmetric nature of most typical broadband connections, it's sending video that quickly becomes the bottleneck. Moreover, decoding all those video streams puts a big strain on the system of each participant.
To limit and CPU bandwidth usage, participants can disable video. This will drop the bandwidth use to audio only, about 50 kbit/sec (about 1/20th of the bandwidth of video), eliminating most decoding work. When all participants are on a fast network, a call with 20 people without video could be doable.