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系統
Tinode for iOS 又稱為 Tinodios 穩定且功能齊全(來源)。請參閱下面的螢幕截圖。
演示/沙盒
https://sandbox.tinode.co/ 提供沙盒示範服務。
以alice
、 bob
、 carol
、 dave
、 frank
之一的身分登入。密碼是<login>123
,例如alice
的登入名稱是alice123
。您可以透過電子郵件或電話發現其他用戶,方法是分別在他們前面加上email:
或tel:
前綴。電子郵件為<login>@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 映像可供使用。
- 歡迎您針對沙箱測試您的用戶端軟體、對其進行破解等。
特徵
支援
- 多個原生平台:
- 安卓(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
- 安利克·梅薩吉拉斯瑪·蘇赫貝特
- 即時訊息
- 即時報
- 即時訊息
- চ্যাট ইন্সট্যান্ট মেসেজিং
- चैट त्वरित संदेश
- তাৎক্ষণিকবার্তাআদানপ্রদান