Tinode即时通讯服务器
即时通讯全栈。纯 Go 后端(许可证 GPL 3.0)、Android (Java)、iOS (Swift) 和 Web (ReactJS) 客户端,以及对 C++、C#、Go、Java、Node、PHP、Python、Ruby 的 gRPC 客户端支持、Objective-C 等(所有客户端均在 Apache 2.0 下获得许可)。有线传输是基于 websocket 的 JSON(也可以使用长轮询)或带有 gRPC 的 protobuf。
这是测试版质量的软件:功能完整且稳定,但可能存在一些错误或缺少功能。按照说明安装并运行或使用以下云服务之一。阅读 API 文档。
Tinode不是XMPP/Jabber。它与 XMPP不兼容。它旨在替代 XMPP。从表面上看,它很像开源 WhatsApp 或 Telegram。
为什么?
XMPP 的承诺是提供联合即时消息传递:任何人都可以启动能够与世界上任何其他 XMPP 服务器交换消息的 IM 服务器。不幸的是,XMPP 从未兑现这一承诺。即时通讯工具仍然是一堆互不相容的围墙花园,类似于 20 世纪 90 年代末的 AoL 之于开放互联网。
该项目的目标是实现 XMPP 的最初愿景:为联合即时消息创建一个现代开放平台,重点是移动通信。第二个目标是创建一个更难以被政府追踪和阻止的去中心化即时通讯平台。
一个明确的非目标:我们不会构建另一个 Slack 替代品。
安装并运行
请参阅一般说明或特定于 docker 的说明。
获得支持
- 阅读 API 文档和常见问题解答。阅读
tinode.conf
文件中包含的配置说明。 - 如需支持、一般问题、讨论,请访问 https://groups.google.com/d/forum/tinode。
- 对于错误和功能请求,请提出问题。
- 使用 https://tinode.co/contact 进行商业查询。
帮忙
- 如果您欣赏我们的工作,请帮忙宣传!在 Reddit、HN 和其他社区上分享比您想象的更有帮助。
- 考虑购买付费支持:https://tinode.co/support.html
- 如果您是软件开发人员,请将包含错误修复和新功能的拉取请求发送给我们。
- 如果您使用该应用程序并发现错误或缺少功能,请通过提交错误报告和功能请求来告知我们。投票选出您认为最有价值的现有功能请求。
- 如果您使用英语以外的语言,请将应用程序翻译成您的语言。您还可以查看并改进现有翻译。
- 如果您是 UI/UX 专家,请帮助我们完善应用程序 UI。
- 使用它:为您的同事或朋友在工作或家里安装它。
公共服务
公共 Tinode 服务可用。您可以像任何其他即时通讯工具一样使用它。请记住,沙箱中存在的模拟帐户在公共服务中不可用。您必须使用有效的电子邮件注册帐户才能使用该服务。
网络
TinodeWeb 是一个单页 Web 应用程序,可从 https://web.tinode.co/(来源)获取。请参阅下面的屏幕截图。
安卓
适用于 Android 的 Tinode(又名 Tindroid)稳定且功能齐全(来源)。请参阅下面的屏幕截图。为了方便起见,还提供了调试 APK。
iOS系统
iOS 版 Tinode 又名 Tinodios 稳定且功能齐全(来源)。请参阅下面的屏幕截图。
演示/沙盒
https://sandbox.tinode.co/ 提供沙盒演示服务。
以alice
、 bob
、 carol
、 dave
、 frank
之一的身份登录。密码是123
,例如alice
的登录名是alice123
。您可以通过电子邮件或电话发现其他用户,方法是分别在他们前面加上email:
或tel:
前缀。电子邮件为@example.com
,例如[email protected]
,电话为+17025550001
至+17025550009
。
当您注册新帐户时,系统会要求您提供用于发送验证码的电子邮件地址。出于演示目的,您可以使用123456
作为通用验证码。您在电子邮件中获得的代码也有效。
沙盒笔记
- 沙盒服务器会在太平洋时间每晚凌晨 3:15 重置(所有数据均被擦除)。错误消息
User not found or offline
意味着在您连接时服务器已重置。如果您在网络上看到它,请重新加载并重新登录。在 Android 上注销并重新登录。如果数据库已更改,请删除该应用程序然后重新安装。 - 沙箱用户
Tino
是一个基本的聊天机器人,它会随机引用任何消息进行响应。 - 正如人们普遍接受的那样,当您注册新帐户时,系统会要求您提供电子邮件地址。服务器将向该地址发送一封包含验证码的电子邮件,您可以使用它来验证帐户。为了方便测试,服务器还将接受
123456
作为验证码。从tinode.conf
中删除行"debug_response": "123456"
以禁用此选项。 - 沙箱服务器配置为使用 ACME TLS 实现,并具有 SNI 的硬编码要求。如果您无法连接,最可能的原因是您的 TLS 客户端缺少对 SNI 的支持。使用不同的客户端。
- 默认 Web 应用程序加载单个缩小的 javascript 包和缩小的 CSS。未缩小的版本也可以在 https://sandbox.tinode.co/index-dev.html 上找到。
- 具有相同演示的 Docker 镜像可供使用。
- 欢迎您在沙箱中测试您的客户端软件、对其进行破解等。但请不要进行 DDoS 攻击。
特征
支持
- 多个原生平台:
- 安卓(Java)
- iOS(斯威夫特)
- 网络(React.js)
- 可编写脚本的命令行 (Python)
- 用户特点:
- 一对一和群组消息传递。
- 视频和语音通话。语音留言。
- 只读订阅者数量不受限制的频道。
- 所有聊天都在所有设备上同步。
- 精细的访问控制,具有各种操作的权限。
- 用户搜索/发现。
- 丰富的消息格式 Markdown-style: *style* → style ,带有内联图像、视频、文件附件。
- 适用于聊天机器人的表单和模板化响应。
- 已验证/员工/不受信任的帐户标记。
- 消息状态通知:消息传送到服务器;收到并阅读通知;键入通知。
- 联系人列表中的最新消息预览。
- 服务器为人员、群聊生成的状态通知。
- 转发和回复消息。
- 编辑已发送的消息。
- 行政:
- 精细的访问控制,具有各种操作的权限。
- 支持自定义身份验证后端。
- 能够阻止服务器端不需要的通信。
- 匿名用户(对于与聊天技术支持相关的用例很重要)。
- 用于扩展功能的插件,例如支持审核或聊天机器人。
- 用于服务器管理的可编写脚本的命令行工具。
- 性能、可靠性和开发:
- 具有故障转移功能的分片集群。
- 使用本地文件系统或 Amazon S3 存储和带外传输大型对象,例如图像或文档文件(媒体处理程序可以支持其他存储系统)。
- JSON 或 protobuf 版本 3 有线协议。
- 各种编程语言的绑定:
- 没有外部依赖的 JavaScript。
- Java 依赖于 Jackson 和 Java-Websocket。适用于 Android,但没有 Android SDK 依赖项。
- Swift,没有外部依赖。
- C/C++、C#、Go、Python、PHP、Ruby 和许多其他使用 gRPC 的语言。
- 选择数据库后端。可以通过编写适配器来添加其他数据库。
- MySQL
- PostgreSQL
- MongoDB
- 重新思考数据库
计划
- 联邦。
- 位置和联系人共享。
- 附加文档、链接的预览。
- 录制视频消息。
- 视频/音频广播。
- 群组视频/音频通话。
- 附加除语音消息之外的音乐/音频。
- 更好的表情符号支持。
- 不同级别的消息持久性(从严格持久性到“存储直至交付”到纯粹的短暂消息传递)。
- 静态消息加密。
- 使用 OTR 进行端到端加密,用于一对一消息传递,以及用于群组消息传递的未确定方法。
- 消息中的全文搜索。
翻译
所有客户端软件都支持国际化。提供以下翻译:
语言 | 服务器 | 网络应用程序 | 安卓 | iOS系统 |
---|
英语 | ✓ | ✓ | ✓ | ✓ |
简体中文 | ✓ | ✓ | ✓ | ✓ |
中国传统 | | ✓ | ✓ | ✓ |
法语 | ✓ | ✓ | ✓ | |
德语 | | ✓ | ✓ | |
印地语 | | | ✓ | |
韩国人 | | ✓ | ✓ | |
葡萄牙语 | ✓ | | ✓ | |
罗马尼亚语 | | ✓ | ✓ | |
俄语 | ✓ | ✓ | ✓ | ✓ |
西班牙语 | ✓ | ✓ | ✓ | ✓ |
泰国 | | ✓ | | |
乌克兰 | ✓ | ✓ | ✓ | ✓ |
越南语 | ✓ | | | |
欢迎更多翻译。除了上面列出的语言外,对阿拉伯语、孟加拉语、印度尼西亚语、乌尔都语、日语、土耳其语、波斯语特别感兴趣。
第三者
项目
- Arango 数据库适配器
- DynamoDB 适配器(已过时)
许可证
- 演示头像和其他一些图形来自 https://www.pexels.com/(在 CC0 许可下)和 https://pixabay.com/(在其许可下)。
- Web 和 Android 背景图案来自 http://subtlepatterns.com/,遵循 CC BY-SA 3.0 许可。
- Android 图标来自 https://material.io/tools/icons/,采用 Apache 2.0 许可。
截图
安卓
iOS系统
桌面网络
移动网络
搜索引擎优化字符串
中文、俄语、波斯语和其他几种语言中的“聊天”和“即时消息”一词。
- 聊天室 即时通讯
- жат мессенджер
- 因苏坦托梅塞吉
- 인스턴트 메신저
- ???????????????????????????????????????????????????????????????
- 塔拉·法鲁里
- Ёхано
- Nhắn Tin tức thời
- 安利克·梅萨吉拉斯玛·苏赫贝特
- 即时消息
- 即时报
- 即时消息
- চ্যাট ইন্সট্যান্ট মেসেজিং
- चैट त्वरित संदेश
- তাৎক্ষণিকবার্তাআদানপ্রদান