Server Pesan Instan Tinode
Tumpukan penuh pesan instan. Backend dalam Go murni (lisensi GPL 3.0), klien untuk Android (Java), iOS (Swift), dan web (ReactJS), serta dukungan klien gRPC untuk C++, C#, Go, Java, Node, PHP, Python, Ruby , Objective-C, dll (semua klien berlisensi Apache 2.0). Transportasi kawat adalah JSON melalui websocket (polling panjang juga tersedia) atau protobuf dengan gRPC.
Ini adalah perangkat lunak berkualitas beta: fitur lengkap dan stabil tetapi mungkin dengan beberapa bug atau fitur yang hilang. Ikuti petunjuk untuk menginstal dan menjalankan atau menggunakan salah satu layanan cloud di bawah. Baca dokumentasi API.
Tinode bukan XMPP/Jabber. Ini tidak kompatibel dengan XMPP. Ini dimaksudkan sebagai pengganti XMPP. Di permukaan, ini sangat mirip dengan WhatsApp atau Telegram open source.
Mengapa?
Janji XMPP adalah untuk menyampaikan pesan instan gabungan: siapa pun akan dapat membuat server IM yang mampu bertukar pesan dengan server XMPP lainnya di dunia. Sayangnya, XMPP tidak pernah memenuhi janji ini. Pesan instan masih merupakan sekumpulan taman bertembok yang tidak kompatibel, mirip dengan AoL pada akhir tahun 1990an dengan Internet terbuka.
Tujuan dari proyek ini adalah untuk mewujudkan visi awal XMPP: menciptakan platform terbuka modern untuk pesan instan gabungan dengan penekanan pada komunikasi seluler. Tujuan kedua adalah menciptakan platform IM terdesentralisasi yang lebih sulit dilacak dan diblokir oleh pemerintah.
Sebuah NON-tujuan yang jelas: kami belum membuat pengganti Slack lagi.
Menginstal dan menjalankan
Lihat instruksi umum atau instruksi khusus buruh pelabuhan.
Mendapatkan dukungan
- Baca dokumentasi API dan FAQ. Baca instruksi konfigurasi yang terdapat dalam file
tinode.conf
. - Untuk dukungan, pertanyaan umum, posting diskusi ke https://groups.google.com/d/forum/tinode.
- Untuk bug dan permintaan fitur, buka masalah.
- Gunakan https://tinode.co/contact untuk pertanyaan komersial.
Membantu
- Jika Anda menghargai pekerjaan kami, tolong bantu menyebarkannya! Berbagi di Reddit, HN, dan komunitas lain membantu lebih dari yang Anda kira.
- Pertimbangkan untuk membeli dukungan berbayar: https://tinode.co/support.html
- Jika Anda seorang pengembang perangkat lunak, kirimkan permintaan penarikan Anda dengan perbaikan bug dan fitur baru.
- Jika Anda menggunakan aplikasi dan menemukan bug atau fitur yang hilang, beri tahu kami dengan mengajukan laporan bug dan permintaan fitur. Pilih permintaan fitur yang ada yang menurut Anda paling berharga.
- Jika Anda berbicara dalam bahasa selain bahasa Inggris, terjemahkan aplikasi ke dalam bahasa Anda. Anda juga dapat meninjau dan menyempurnakan terjemahan yang ada.
- Jika Anda ahli UI/UX, bantu kami menyempurnakan UI aplikasi.
- Gunakan: instal untuk kolega atau teman Anda di kantor atau di rumah.
Pelayanan publik
Layanan Tinode publik tersedia. Anda dapat menggunakannya sama seperti pengirim pesan instan lainnya. Perlu diingat bahwa akun demo yang ada di sandbox tidak tersedia di layanan publik. Anda harus mendaftarkan akun menggunakan email yang valid untuk menggunakan layanan ini.
jaring
TinodeWeb, aplikasi web satu halaman, tersedia di https://web.tinode.co/ (sumber). Lihat tangkapan layar di bawah.
Android
Tinode untuk Android alias Tindroid stabil dan fungsional (sumber). Lihat tangkapan layar di bawah ini. APK debug juga disediakan untuk kenyamanan.
iOS
Tinode untuk iOS alias Tinodios stabil dan fungsional (sumber). Lihat tangkapan layar di bawah ini.
Demo/Kotak Pasir
Layanan demo sandbox tersedia di https://sandbox.tinode.co/.
Masuk sebagai salah satu dari alice
, bob
, carol
, dave
, frank
. Kata sandinya adalah <login>123
, misalnya login untuk alice
adalah alice123
. Anda dapat menemukan pengguna lain melalui email atau telepon dengan mengawali mereka dengan email:
atau tel:
masing-masing. Email <login>@example.com
, misalnya [email protected]
, telepon +17025550001
hingga +17025550009
.
Saat Anda mendaftarkan akun baru, Anda akan dimintai alamat email untuk mengirim kode validasi. Untuk tujuan demo, Anda dapat menggunakan 123456
sebagai kode validasi universal. Kode yang Anda dapatkan di email juga valid.
Catatan Kotak Pasir
- Server sandbox disetel ulang (semua data dihapus) setiap malam pukul 03.15 waktu Pasifik. Pesan kesalahan
User not found or offline
berarti server disetel ulang saat Anda terhubung. Jika Anda melihatnya di web, muat ulang dan masuk kembali. Di Android, keluar dan masuk kembali. Jika database diubah, hapus aplikasi lalu instal ulang. - Pengguna Sandbox
Tino
adalah chatbot dasar yang merespons pesan apa pun dengan kutipan acak. - Seperti yang diterima secara umum, saat Anda mendaftarkan akun baru, Anda akan dimintai alamat email. Server akan mengirimkan email berisi kode verifikasi ke alamat tersebut dan Anda dapat menggunakannya untuk memvalidasi akun. Untuk mempermudah pengujian, server juga akan menerima
123456
sebagai kode verifikasi. Hapus baris "debug_response": "123456"
dari tinode.conf
untuk menonaktifkan opsi ini. - Server sandbox dikonfigurasi untuk menggunakan implementasi ACME TLS dengan persyaratan hard-code untuk SNI. Jika Anda tidak dapat terhubung, kemungkinan besar alasannya adalah tidak adanya dukungan SNI pada klien TLS Anda. Gunakan klien yang berbeda.
- Aplikasi web default memuat satu paket javascript yang diperkecil dan CSS yang diperkecil. Versi yang tidak diperkecil juga tersedia di https://sandbox.tinode.co/index-dev.html
- Gambar Docker dengan demo yang sama tersedia.
- Anda dipersilakan untuk menguji perangkat lunak klien Anda terhadap sandbox, meretasnya, dll. Namun, jangan melakukan DDoS.
Fitur
Didukung
- Berbagai platform asli:
- Android (Jawa)
- iOS (Cepat)
- Web (React.js)
- Baris perintah yang dapat dituliskan (Python)
- Fitur pengguna:
- Pesan satu lawan satu dan grup.
- Panggilan video dan suara. Pesan suara.
- Saluran dengan jumlah pelanggan hanya-baca yang tidak terbatas.
- Semua obrolan disinkronkan di semua perangkat.
- Kontrol akses terperinci dengan izin untuk berbagai tindakan.
- Pencarian/penemuan pengguna.
- Pemformatan pesan yang kaya gaya penurunan harga: *gaya* → gaya , dengan gambar sebaris, video, lampiran file.
- Formulir dan tanggapan bertemplat cocok untuk chatbots.
- Penanda akun terverifikasi/staf/tidak tepercaya.
- Pemberitahuan status pesan: pengiriman pesan ke server; menerima dan membaca notifikasi; mengetik pemberitahuan.
- Pratinjau pesan terbaru dalam daftar kontak.
- Pemberitahuan kehadiran yang dihasilkan server untuk orang-orang, obrolan grup.
- Meneruskan dan membalas pesan.
- Mengedit pesan terkirim.
- Administrasi:
- Kontrol akses terperinci dengan izin untuk berbagai tindakan.
- Dukungan untuk backend otentikasi khusus.
- Kemampuan untuk memblokir komunikasi yang tidak diinginkan di sisi server.
- Pengguna anonim (penting untuk kasus penggunaan yang terkait dengan dukungan teknis melalui obrolan).
- Plugin untuk memperluas fungsionalitas, misalnya untuk mendukung moderasi atau chatbots.
- Alat baris perintah yang dapat ditulis untuk administrasi server.
- Performa, keandalan, dan pengembangan:
- Pengelompokan shard dengan failover.
- Penyimpanan dan transfer out of band objek besar seperti gambar atau file dokumen menggunakan sistem file lokal atau Amazon S3 (sistem penyimpanan lain dapat didukung dengan penangan media).
- Protokol kabel JSON atau protobuf versi 3.
- Binding untuk berbagai bahasa pemrograman:
- Javascript tanpa ketergantungan eksternal.
- Java dengan ketergantungan pada Jackson dan Java-Websocket. Cocok untuk Android tetapi tanpa ketergantungan Android SDK.
- Swift tanpa ketergantungan eksternal.
- C/C++, C#, Go, Python, PHP, Ruby dan banyak bahasa lainnya menggunakan gRPC.
- Pilihan backend database. Basis data lain dapat ditambahkan dengan menulis adaptor.
- MySQL
- PostgreSQL
- MongoDB
- Pikirkan kembaliDB
Berencana
- Federasi.
- Berbagi lokasi dan kontak.
- Pratinjau dokumen terlampir, tautan.
- Merekam pesan video.
- Penyiaran video/audio.
- Panggilan video/audio grup.
- Melampirkan musik/audio selain pesan suara.
- Dukungan emoji yang lebih baik.
- Tingkat persistensi pesan yang berbeda-beda (dari persistensi ketat hingga "disimpan hingga terkirim" hingga pesan yang hanya bersifat sementara).
- Enkripsi pesan saat istirahat.
- Enkripsi ujung ke ujung dengan OTR untuk perpesanan satu lawan satu dan metode ragu-ragu untuk perpesanan grup.
- Pencarian teks lengkap dalam pesan.
Terjemahan
Semua perangkat lunak klien memiliki dukungan untuk internasionalisasi. Terjemahan berikut disediakan:
Bahasa | pelayan | aplikasi web | Android | iOS |
---|
Bahasa inggris | ✓ | ✓ | ✓ | ✓ |
bahasa Cina yang disederhanakan | ✓ | ✓ | ✓ | ✓ |
tradisional Cina | | ✓ | ✓ | ✓ |
Perancis | ✓ | ✓ | ✓ | |
Jerman | | ✓ | ✓ | |
Hindi | | | ✓ | |
Korea | | ✓ | ✓ | |
Portugis | ✓ | | ✓ | |
Rumania | | ✓ | ✓ | |
Rusia | ✓ | ✓ | ✓ | ✓ |
Spanyol | ✓ | ✓ | ✓ | ✓ |
Thai | | ✓ | | |
Ukraina | ✓ | ✓ | ✓ | ✓ |
Vietnam | ✓ | | | |
Terjemahan lainnya dipersilakan. Selain bahasa yang tercantum di atas, yang paling tertarik adalah bahasa Arab, Bengali, Indonesia, Urdu, Jepang, Turki, Persia.
Pihak Ketiga
Proyek
- Adaptor Arango DB
- Adaptor DynamoDB (ketinggalan jaman)
Lisensi
- Avatar demo dan beberapa grafik lainnya berasal dari https://www.pexels.com/ di bawah lisensi CC0 dan https://pixabay.com/ di bawah lisensi mereka.
- Pola latar belakang web dan Android berasal dari http://subtlepatterns.com/ di bawah lisensi CC BY-SA 3.0.
- Ikon Android berasal dari https://material.io/tools/icons/ di bawah lisensi Apache 2.0.
Tangkapan layar
Android
iOS
Web Desktop
Web Seluler
String SEO
Kata 'obrolan' dan 'pesan instan' dalam bahasa Cina, Rusia, Persia, dan beberapa bahasa lainnya.
- 聊天室 即時通訊
- begitulah
- インスタントメッセージ
- 인스턴트 메신저
- پیام رسان فوری
- تراسل فوري
- فوری پیغام رسانی
- Tidak ada gunanya
- dan juga pesan lainnya
- pesan instan
- pesan instan
- pesan instan
- Panduan Pengguna
- Panduan Pengguna
- Panduan Pengguna