Сервер мгновенных сообщений Tinode
Полный стек мгновенных сообщений. Серверная часть на чистом Go (лицензия GPL 3.0), клиенты для Android (Java), iOS (Swift) и Интернет (ReactJS), а также поддержка клиентов gRPC для C++, C#, Go, Java, Node, PHP, Python, Ruby. , Objective-C и т. д. (все клиенты лицензированы под Apache 2.0). Проводной транспорт — это JSON через веб-сокет (также доступен длинный опрос) или protobuf с gRPC.
Это программное обеспечение бета-качества: полнофункциональное и стабильное, но, возможно, с несколькими ошибками или отсутствующими функциями. Следуйте инструкциям по установке и запуску или использованию одной из облачных служб ниже. Прочтите документацию по API.
Tinode — это не XMPP/Jabber. Он не совместим с XMPP. Он предназначен для замены XMPP. На первый взгляд, это очень похоже на WhatsApp или Telegram с открытым исходным кодом.
Почему?
Обещанием XMPP было обеспечение федеративного обмена мгновенными сообщениями: любой мог бы запустить сервер обмена мгновенными сообщениями, способный обмениваться сообщениями с любым другим сервером XMPP в мире. К сожалению, XMPP так и не выполнил это обещание. Мессенджеры по-прежнему представляют собой набор несовместимых огороженных садов, похожих на то, чем AoL в конце 1990-х годов был для открытого Интернета.
Цель этого проекта — реализовать первоначальную концепцию XMPP: создать современную открытую платформу для федеративного обмена мгновенными сообщениями с упором на мобильную связь. Вторая цель — создать децентрализованную платформу обмена мгновенными сообщениями, которую правительствам гораздо сложнее отследить и заблокировать.
Явная НЕцель: мы не создаем еще одну замену Slack.
Установка и запуск
См. общие инструкции или инструкции для конкретных докеров.
Получение поддержки
- Прочтите документацию по API и часто задаваемые вопросы. Прочтите инструкции по настройке, содержащиеся в
tinode.conf
. - Для поддержки, общих вопросов и обсуждений пишите на https://groups.google.com/d/forum/tinode.
- Для ошибок и запросов функций открывайте проблему.
- Используйте https://tinode.co/contact для коммерческих запросов.
Помощь
- Если вы цените нашу работу, пожалуйста, помогите распространить информацию! Публикация на Reddit, HN и других сообществах помогает больше, чем вы думаете.
- Рассмотрите возможность приобретения платной поддержки: https://tinode.co/support.html.
- Если вы разработчик программного обеспечения, присылайте нам запросы на включение исправлений ошибок и новых функций.
- Если вы используете приложение и обнаруживаете ошибки или отсутствующие функции, сообщите нам об этом, отправив отчеты об ошибках и запросив новые функции. Голосуйте за существующие запросы функций, которые вы считаете наиболее ценными.
- Если вы говорите на другом языке, кроме английского, переведите приложения на свой язык. Вы также можете просмотреть и улучшить существующие переводы.
- Если вы эксперт по UI/UX, помогите нам усовершенствовать пользовательский интерфейс приложения.
- Используйте его: установите для своих коллег или друзей на работе или дома.
Государственная служба
Доступен общедоступный сервис Tinode. Вы можете использовать его так же, как и любой другой мессенджер. Имейте в виду, что демо-счета, присутствующие в песочнице, недоступны в публичном сервисе. Чтобы воспользоваться услугой, вы должны зарегистрировать учетную запись, используя действующий адрес электронной почты.
Интернет
TinodeWeb, одностраничное веб-приложение, доступно по адресу https://web.tinode.co/ (источник). Смотрите скриншоты ниже.
Андроид
Tinode для Android, также известный как Tindroid, стабилен и функционален (источник). Смотрите скриншоты ниже. Для удобства также предоставляется отладочный APK.
iOS
Tinode для 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
в качестве кода подтверждения. Удалите строку "debug_response": "123456"
из tinode.conf
чтобы отключить эту опцию. - Сервер песочницы настроен на использование реализации ACME TLS с жестко запрограммированными требованиями для SNI. Если вы не можете подключиться, то наиболее вероятной причиной является отсутствие поддержки SNI вашим клиентом TLS. Используйте другой клиент.
- Веб-приложение по умолчанию загружает один минимизированный пакет JavaScript и минимизированный CSS. Неминифицированная версия также доступна по адресу https://sandbox.tinode.co/index-dev.html.
- Доступны образы Docker с той же демонстрацией.
- Вы можете протестировать свое клиентское программное обеспечение в песочнице, взломать его и т. д. Однако, пожалуйста, никаких DDoS-атак.
Функции
Поддерживается
- Несколько нативных платформ:
- Андроид (Ява)
- iOS (Свифт)
- Интернет (React.js)
- Командная строка с поддержкой сценариев (Python)
- Возможности пользователя:
- Индивидуальные и групповые сообщения.
- Видео и голосовые звонки. Голосовые сообщения.
- Каналы с неограниченным количеством подписчиков только для чтения.
- Все чаты синхронизируются на всех устройствах.
- Детальный контроль доступа с разрешениями для различных действий.
- Поиск/обнаружение пользователей.
- Богатое форматирование сообщений в стиле уценки: *style* → style , со встроенными изображениями, видео и вложенными файлами.
- Формы и шаблонные ответы, подходящие для чат-ботов.
- Маркеры проверенных/штатных/недоверенных учетных записей.
- Уведомления о статусе сообщения: доставка сообщения на сервер; получать и читать уведомления; ввод уведомлений.
- Предварительный просмотр последнего сообщения в списке контактов.
- Генерируемые сервером уведомления о присутствии для людей, групповые чаты.
- Пересылка и ответ на сообщения.
- Редактирование отправленных сообщений.
- Администрация:
- Детальный контроль доступа с разрешениями для различных действий.
- Поддержка пользовательских серверов аутентификации.
- Возможность блокировать нежелательное общение на стороне сервера.
- Анонимные пользователи (важно для случаев использования, связанных с технической поддержкой через чат).
- Плагины для расширения функциональности, например, для поддержки модерации или чат-ботов.
- Инструмент командной строки со сценариями для администрирования сервера.
- Производительность, надежность и развитие:
- Сегментированная кластеризация с отказоустойчивостью.
- Хранение и внеполосная передача больших объектов, таких как изображения или файлы документов, с использованием локальной файловой системы или Amazon S3 (другие системы хранения могут поддерживаться обработчиками мультимедиа).
- Проводные протоколы JSON или protobuf версии 3.
- Привязки для различных языков программирования:
- Javascript без внешних зависимостей.
- Java с зависимостями от Джексона и Java-Websocket. Подходит для Android, но без зависимостей Android SDK.
- Swift без внешних зависимостей.
- C/C++, C#, Go, Python, PHP, Ruby и многие другие языки, использующие gRPC.
- Выбор серверной базы данных. Другие базы данных можно добавить, написав адаптеры.
- MySQL
- PostgreSQL
- МонгоБД
- Переосмыслить БД
Планируется
- Федерация.
- Обмен местоположением и контактами.
- Превью прикрепленных документов, ссылок.
- Запись видеосообщений.
- Видео/аудио трансляции.
- Групповые видео/аудио звонки.
- Прикрепление музыки/аудио, кроме голосовых сообщений.
- Улучшенная поддержка смайлов.
- Различные уровни сохранения сообщений (от строгого сохранения до «хранения до доставки» до чисто эфемерного обмена сообщениями).
- Шифрование сообщений в состоянии покоя.
- Сквозное шифрование с помощью OTR для индивидуального обмена сообщениями и неопределенный метод для группового обмена сообщениями.
- Полнотекстовый поиск в сообщениях.
Переводы
Все клиентское программное обеспечение имеет поддержку интернационализации. Предоставляются следующие переводы:
Язык | Сервер | Веб-приложение | Андроид | iOS |
---|
Английский | ✓ | ✓ | ✓ | ✓ |
китайский упрощенный | ✓ | ✓ | ✓ | ✓ |
Китайский традиционный | | ✓ | ✓ | ✓ |
Французский | ✓ | ✓ | ✓ | |
немецкий | | ✓ | ✓ | |
хинди | | | ✓ | |
корейский | | ✓ | ✓ | |
португальский | ✓ | | ✓ | |
румынский | | ✓ | ✓ | |
Русский | ✓ | ✓ | ✓ | ✓ |
испанский | ✓ | ✓ | ✓ | ✓ |
тайский | | ✓ | | |
Украинский | ✓ | ✓ | ✓ | ✓ |
вьетнамский | ✓ | | | |
Дополнительные переводы приветствуются. Помимо языков, перечисленных выше, особенно интересуют арабский, бенгальский, индонезийский, урду, японский, турецкий, персидский.
Третья сторона
Проекты
- Адаптер БД Аранго
- Адаптер DynamoDB (устаревший)
Лицензии
- Демонстрационные аватары и некоторые другие изображения взяты с https://www.pexels.com/ по лицензии CC0 и https://pixabay.com/ по их лицензии.
- Фоновые шаблоны для Интернета и Android взяты с http://subtlepatterns.com/ по лицензии CC BY-SA 3.0.
- Значки Android взяты с https://material.io/tools/icons/ под лицензией Apache 2.0.
Скриншоты
Андроид
iOS
Настольный Интернет
Мобильный Интернет
SEO-строки
Слова «чат» и «обмен мгновенными сообщениями» на китайском, русском, персидском и некоторых других языках.
- 聊天室 即時通訊
- чат-мессенджер
- インスタントメッセージ
- 인스턴트 메신저
- پیام رسان فوری
- Тэри Уотер
- فوری پیغام رسانی
- Нон Тин Ток Тхи
- Анлык Месайлашма Сохбет
- Mensageiro Instantâneo
- песан мгновенно
- мгновенные сообщения
- চ্যাট ইন্সট্যান্ট মেসেজিং
- Дэйв Сэнсэй
- তাৎক্ষণিক বার্তা আদান প্রদান