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 はこの約束を果たせませんでした。インスタント メッセンジャーは依然として互換性のない壁に囲まれた庭園のようなもので、オープン インターネットに対する 1990 年代後半の AoL と同様です。
このプロジェクトの目標は、モバイル通信に重点を置いたフェデレーション インスタント メッセージングのための最新のオープン プラットフォームを作成するという、XMPP の当初のビジョンを実現することです。第 2 の目標は、政府による追跡とブロックがはるかに困難な分散型 IM プラットフォームを作成することです。
明示的な非目標: 私たちは Slack に代わる別の製品を構築するつもりはありません。
インストールと実行
一般的な手順または Docker 固有の手順を参照してください。
サポートを受ける
- API ドキュメントと FAQ を読んでください。
tinode.conf
ファイルに含まれている設定手順を読んでください。 - サポート、一般的な質問、ディスカッションについては、https://groups.google.com/d/forum/tinode に投稿してください。
- バグや機能リクエストについては、問題を作成してください。
- 商業的なお問い合わせについては、https://tinode.co/contact をご利用ください。
お手伝い
- 私たちの取り組みを評価していただけましたら、ぜひその言葉を広めてください。 Reddit、HN、その他のコミュニティでの共有は、思っている以上に役に立ちます。
- 有料サポートの購入を検討してください: https://tinode.co/support.html
- ソフトウェア開発者の場合は、バグ修正と新機能を含むプル リクエストを送信してください。
- アプリを使用していてバグや不足している機能を発見した場合は、バグレポートや機能リクエストを提出してお知らせください。最も価値があると思われる既存の機能リクエストに投票してください。
- 英語以外の言語を話す場合は、アプリをあなたの言語に翻訳してください。既存の翻訳を見直して改善することもできます。
- UI/UX の専門家の方は、アプリの UI の改善にご協力ください。
- 使用してください: 職場や自宅の同僚や友人のためにインストールしてください。
公共
パブリック Tinode サービスが利用可能です。他のインスタント メッセンジャーと同じように使用できます。サンドボックスに存在するデモ アカウントは公共サービスでは利用できないことに注意してください。サービスを使用するには、有効な電子メールを使用してアカウントを登録する必要があります。
ウェブ
シングルページ Web アプリである TinodeWeb は、https://web.tinode.co/ (ソース) で入手できます。以下のスクリーンショットを参照してください。
アンドロイド
Tinode for Android 別名 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
接続中にサーバーがリセットされたことを意味します。 Web 上で表示された場合は、リロードして再ログインしてください。 Android ではログアウトして再ログインします。データベースが変更されている場合は、アプリを削除してから再インストールしてください。 - サンドボックス ユーザーの
Tino
は、あらゆるメッセージに対してランダムな引用で応答する基本的なチャットボットです。 - 一般に受け入れられているように、新しいアカウントを登録するときは、電子メール アドレスの入力を求められます。サーバーは確認コードを含む電子メールをそのアドレスに送信し、それを使用してアカウントを検証できます。テストを容易にするために、サーバーは検証コードとして
123456
も受け入れます。このオプションを無効にするには、 tinode.conf
から行"debug_response": "123456"
を削除します。 - サンドボックス サーバーは、SNI のハードコードされた要件を持つ ACME TLS 実装を使用するように構成されています。接続できない場合、最も考えられる原因は、TLS クライアントが SNI をサポートしていないことです。別のクライアントを使用してください。
- デフォルトの Web アプリは、単一の縮小された JavaScript バンドルと縮小された CSS をロードします。縮小されていないバージョンは https://sandbox.tinode.co/index-dev.html からも入手できます。
- 同じデモの Docker イメージが利用可能です。
- クライアント ソフトウェアをサンドボックスに対してテストしたり、ハッキングしたりすることは歓迎されます。ただし、DDoS 攻撃は禁止してください。
特徴
サポートされています
- 複数のネイティブ プラットフォーム:
- アンドロイド(Java)
- iOS(スイフト)
- ウェブ (React.js)
- スクリプト可能なコマンドライン (Python)
- ユーザー機能:
- 1対1およびグループメッセージング。
- ビデオ通話と音声通話。音声メッセージ。
- 読み取り専用サブスクライバーの数が無制限のチャンネル。
- すべてのチャットはすべてのデバイス間で同期されます。
- さまざまなアクションに対する権限を備えたきめ細かいアクセス制御。
- ユーザーの検索/発見。
- メッセージのマークダウン スタイルのリッチ フォーマット: *style* → style 、インライン画像、ビデオ、添付ファイルを使用します。
- チャットボットに適したフォームとテンプレート化された応答。
- 認証済み/スタッフ/信頼できないアカウント マーカー。
- メッセージステータス通知: サーバーへのメッセージ配信。受信通知と既読通知。入力通知。
- 連絡先リストの最新メッセージのプレビュー。
- サーバーが生成する人々、グループ チャットのプレゼンス通知。
- メッセージの転送と返信。
- 送信したメッセージを編集します。
- 管理:
- さまざまなアクションに対する権限を備えたきめ細かいアクセス制御。
- カスタム認証バックエンドのサポート。
- サーバー側で不要な通信をブロックする機能。
- 匿名ユーザー (チャットによる技術サポートに関連するユースケースで重要)。
- モデレーションやチャットボットをサポートするなど、機能を拡張するプラグイン。
- サーバー管理用のスクリプト可能なコマンドライン ツール。
- パフォーマンス、信頼性、開発:
- フェイルオーバーを備えたシャードクラスタリング。
- ローカル ファイル システムまたは Amazon S3 を使用した、画像やドキュメント ファイルなどの大きなオブジェクトのストレージと帯域外転送 (他のストレージ システムはメディア ハンドラーでサポート可能)。
- JSON または protobuf バージョン 3 ワイヤー プロトコル。
- さまざまなプログラミング言語のバインディング:
- 外部依存関係のない Javascript。
- Jackson および Java-Websocket に依存する Java。 Android に適していますが、Android SDK への依存関係はありません。
- 外部依存関係のない Swift。
- C/C++、C#、Go、Python、PHP、Ruby、および gRPC を使用するその他の多くの言語。
- データベース バックエンドの選択。アダプターを作成することで他のデータベースを追加できます。
- MySQL
- PostgreSQL
- モンゴDB
- RethinkDB
計画済み
- フェデレーション。
- 位置情報と連絡先の共有。
- 添付ドキュメントのプレビュー、リンク。
- ビデオメッセージを録画します。
- ビデオ/オーディオブロードキャスト。
- グループビデオ/オーディオ通話。
- 音声メッセージ以外の音楽/音声を添付する。
- 絵文字のサポートが改善されました。
- さまざまなレベルのメッセージ永続性 (「配信されるまで保存する」という厳密な永続性から、純粋に一時的なメッセージングまで)。
- 保存時のメッセージの暗号化。
- 1 対 1 メッセージングの場合は OTR を使用したエンドツーエンド暗号化、グループ メッセージングの場合は未定の方式。
- メッセージ内の全文検索。
翻訳
すべてのクライアント ソフトウェアは国際化をサポートしています。以下の翻訳が提供されています。
言語 | サーバ | ウェブアプリ | アンドロイド | iOS |
---|
英語 | ✓ | ✓ | ✓ | ✓ |
簡体字中国語 | ✓ | ✓ | ✓ | ✓ |
中国の伝統的な | | ✓ | ✓ | ✓ |
フランス語 | ✓ | ✓ | ✓ | |
ドイツ語 | | ✓ | ✓ | |
ヒンディー語 | | | ✓ | |
韓国人 | | ✓ | ✓ | |
ポルトガル語 | ✓ | | ✓ | |
ルーマニア語 | | ✓ | ✓ | |
ロシア | ✓ | ✓ | ✓ | ✓ |
スペイン語 | ✓ | ✓ | ✓ | ✓ |
タイ語 | | ✓ | | |
ウクライナ語 | ✓ | ✓ | ✓ | ✓ |
ベトナム語 | ✓ | | | |
さらに多くの翻訳を歓迎します。上記の言語に加えて、特にアラビア語、ベンガル語、インドネシア語、ウルドゥー語、日本語、トルコ語、ペルシア語に興味があります。
第三者
プロジェクト
- アランゴ DB アダプター
- DynamoDB アダプター (古い)
ライセンス
- デモ アバターとその他のグラフィックは、CC0 ライセンスに基づいて https://www.pexels.com/ から、およびライセンスに基づいて https://pixabay.com/ から提供されます。
- Web および Android の背景パターンは、CC BY-SA 3.0 ライセンスに基づいて http://subtlepatterns.com/ から入手できます。
- Android アイコンは、Apache 2.0 ライセンスに基づいて https://material.io/tools/icons/ から取得されます。
スクリーンショット
アンドロイド
iOS
デスクトップウェブ
モバイルウェブ
SEO文字列
中国語、ロシア語、ペルシア語、その他いくつかの言語での「チャット」と「インスタント メッセージング」という言葉。
- 聊天室 即時通訊
- 連絡先
- インスタントメッセージ
- 인스턴트 메신저
- پیام رسان فوری
- いいえ
- فوری پیغام رسانی
- Nhắn tin tức thời
- アンルク・メサイラスマ・ソベト
- メンサエイロインスタント
- ペサンインスタント
- インスタントメンサヘリア
- চ্যাট ইন্সট্যান্ট মেসেজিং
- चैट त्वरित संदेश
- তাৎক্ষণিক বার্তা আদান প্রদান