Servidor de mensajería instantánea Tinode
Pila completa de mensajería instantánea. Backend en Go puro (licencia GPL 3.0), clientes para Android (Java), iOS (Swift) y web (ReactJS), así como soporte de cliente gRPC para C++, C#, Go, Java, Node, PHP, Python, Ruby , Objective-C, etc. (todos los clientes con licencia Apache 2.0). El transporte por cable es JSON a través de websocket (también está disponible el sondeo largo) o protobuf con gRPC.
Este es un software de calidad beta: con funciones completas y estable, pero probablemente con algunos errores o funciones faltantes. Siga las instrucciones para instalar y ejecutar o utilizar uno de los servicios en la nube a continuación. Lea la documentación de la API.
Tinode no es XMPP/Jabber. No es compatible con XMPP. Está pensado como un reemplazo para XMPP. A primera vista, se parece mucho a WhatsApp o Telegram de código abierto.
¿Por qué?
La promesa de XMPP era ofrecer mensajería instantánea federada: cualquiera podría crear un servidor de mensajería instantánea capaz de intercambiar mensajes con cualquier otro servidor XMPP del mundo. Desafortunadamente, XMPP nunca cumplió esta promesa. Los mensajeros instantáneos siguen siendo un montón de jardines amurallados incompatibles, similar a lo que AoL de finales de los años 1990 fue para la Internet abierta.
El objetivo de este proyecto es cumplir la visión original de XMPP: crear una plataforma abierta moderna para mensajería instantánea federada con énfasis en la comunicación móvil. Un objetivo secundario es crear una plataforma de mensajería instantánea descentralizada que sea mucho más difícil de rastrear y bloquear por parte de los gobiernos.
Un NO objetivo explícito: no estamos construyendo otro reemplazo de Slack.
Instalación y ejecución
Consulte las instrucciones generales o las instrucciones específicas de Docker.
Obteniendo apoyo
- Lea la documentación de API y las preguntas frecuentes. Lea las instrucciones de configuración contenidas en el archivo
tinode.conf
. - Para obtener asistencia, preguntas generales y debates, publique en https://groups.google.com/d/forum/tinode.
- Para errores y solicitudes de funciones, abra un problema.
- Utilice https://tinode.co/contact para consultas comerciales.
ayudando
- Si aprecia nuestro trabajo, ¡ayúdenos a correr la voz! Compartir en Reddit, HN y otras comunidades ayuda más de lo que cree.
- Considere comprar soporte pago: https://tinode.co/support.html
- Si es desarrollador de software, envíenos sus solicitudes de extracción con correcciones de errores y nuevas funciones.
- Si utiliza la aplicación y descubre errores o funciones faltantes, infórmenos presentando informes de errores y solicitudes de funciones. Vote por las solicitudes de funciones existentes que considere más valiosas.
- Si habla un idioma que no sea inglés, traduzca las aplicaciones a su idioma. También puede revisar y mejorar las traducciones existentes.
- Si eres un experto en UI/UX, ayúdanos a pulir la interfaz de usuario de la aplicación.
- Úselo: instálelo para sus colegas o amigos en el trabajo o en casa.
servicio publico
Un servicio público Tinode está disponible. Puedes usarlo como cualquier otro mensajero instantáneo. Tenga en cuenta que las cuentas de demostración presentes en el sandbox no están disponibles en el servicio público. Debe registrar una cuenta utilizando un correo electrónico válido para poder utilizar el servicio.
Web
TinodeWeb, una aplicación web de una sola página, está disponible en https://web.tinode.co/ (fuente). Vea las capturas de pantalla a continuación.
Androide
Tinode para Android, también conocido como Tindroid, es estable y funcional (fuente). Vea las capturas de pantalla a continuación. También se proporciona un APK de depuración para mayor comodidad.
iOS
Tinode para iOS, también conocido como Tinodios, es estable y funcional (fuente). Vea las capturas de pantalla a continuación.
Demostración/zona de pruebas
Un servicio de demostración en espacio aislado está disponible en https://sandbox.tinode.co/.
Inicie sesión como uno de alice
, bob
, carol
, dave
, frank
. La contraseña es <login>123
, por ejemplo, el inicio de sesión para alice
es alice123
. Puede descubrir a otros usuarios por correo electrónico o por teléfono anteponiéndoles el prefijo email:
o tel:
respectivamente. Los correos electrónicos son <login>@example.com
, por ejemplo, [email protected]
, los teléfonos son +17025550001
a +17025550009
.
Cuando registra una cuenta nueva, se le solicita una dirección de correo electrónico para enviar el código de validación. Para fines de demostración, puede utilizar 123456
como código de validación universal. El código que recibes en el correo electrónico también es válido.
Notas de la zona de pruebas
- El servidor sandbox se reinicia (se borran todos los datos) todas las noches a las 3:15 a. m., hora del Pacífico. Un mensaje de error
User not found or offline
significa que el servidor se restableció mientras estaba conectado. Si lo ves en la web, recarga y vuelve a iniciar sesión. En Android, cierre sesión y vuelva a iniciar sesión. Si se cambió la base de datos, elimine la aplicación y luego vuelva a instalarla. - El usuario de Sandbox,
Tino
es un chatbot básico que responde con una cita aleatoria a cualquier mensaje. - Como es generalmente aceptado, cuando registra una nueva cuenta se le solicita una dirección de correo electrónico. El servidor enviará un correo electrónico con un código de verificación a esa dirección y podrás usarlo para validar la cuenta. Para facilitar las pruebas, el servidor también aceptará
123456
como código de verificación. Elimine la línea "debug_response": "123456"
de tinode.conf
para desactivar esta opción. - El servidor sandbox está configurado para utilizar la implementación ACME TLS con requisitos codificados para SNI. Si no puede conectarse, la razón más probable es que su cliente TLS no sea compatible con SNI. Utilice un cliente diferente.
- La aplicación web predeterminada carga un único paquete de JavaScript minimizado y CSS minimizado. La versión no minificada también está disponible en https://sandbox.tinode.co/index-dev.html
- Hay imágenes de Docker disponibles con la misma demostración.
- Le invitamos a probar el software de su cliente en la zona de pruebas, piratearlo, etc. Sin embargo, no utilice DDoS, por favor.
Características
Apoyado
- Múltiples plataformas nativas:
- Android (Java)
- iOS (rápido)
- Web (React.js)
- Línea de comando programable (Python)
- Funciones de usuario:
- Mensajería individual y grupal.
- Videollamadas y llamadas de voz. Mensajes de voz.
- Canales con número ilimitado de suscriptores de solo lectura.
- Todos los chats están sincronizados en todos los dispositivos.
- Control de acceso granular con permisos para diversas acciones.
- Búsqueda/descubrimiento de usuarios.
- Formato enriquecido de mensajes estilo markdown: *estilo* → estilo , con imágenes en línea, videos y archivos adjuntos.
- Formularios y respuestas con plantillas adecuados para chatbots.
- Marcadores de cuentas verificadas/personal/no confiables.
- Notificaciones de estado de mensajes: entrega de mensajes al servidor; notificaciones recibidas y leídas; escribiendo notificaciones.
- Vista previa del mensaje más reciente en la lista de contactos.
- Notificaciones de presencia generadas por el servidor para personas, chats grupales.
- Reenviar y responder mensajes.
- Edición de mensajes enviados.
- Administración:
- Control de acceso granular con permisos para diversas acciones.
- Soporte para backends de autenticación personalizados.
- Capacidad para bloquear comunicaciones no deseadas del lado del servidor.
- Usuarios anónimos (importante para casos de uso relacionados con soporte técnico a través del chat).
- Complementos para ampliar la funcionalidad, por ejemplo, para admitir moderación o chatbots.
- Herramienta de línea de comandos programable para la administración del servidor.
- Rendimiento, fiabilidad y desarrollo:
- Agrupación fragmentada con conmutación por error.
- Almacenamiento y transferencia fuera de banda de objetos grandes, como imágenes o archivos de documentos, utilizando el sistema de archivos local o Amazon S3 (otros sistemas de almacenamiento pueden ser compatibles con controladores de medios).
- Protocolos de cable JSON o protobuf versión 3.
- Enlaces para varios lenguajes de programación:
- Javascript sin dependencias externas.
- Java con dependencias de Jackson y Java-Websocket. Adecuado para Android pero sin dependencias del SDK de Android.
- Swift sin dependencias externas.
- C/C++, C#, Go, Python, PHP, Ruby y muchos otros lenguajes que utilizan gRPC.
- Elección de un backend de base de datos. Se pueden agregar otras bases de datos escribiendo adaptadores.
- mysql
- PostgreSQL
- MongoDB
- Repensar DB
Planificado
- Federación.
- Compartir ubicación y contactos.
- Vistas previas de documentos adjuntos, enlaces.
- Grabación de mensajes de vídeo.
- Difusión de vídeo/audio.
- Llamadas grupales de video/audio.
- Adjuntar música/audio que no sean mensajes de voz.
- Mejor soporte para emojis.
- Diferentes niveles de persistencia de mensajes (desde persistencia estricta hasta "almacenar hasta entregar" y mensajería puramente efímera).
- Cifrado de mensajes en reposo.
- Cifrado de extremo a extremo con OTR para mensajería uno a uno y método indeciso para mensajería grupal.
- Búsqueda de texto completo en mensajes.
Traducciones
Todo el software cliente tiene soporte para la internacionalización. Se proporcionan las siguientes traducciones:
Idioma | Servidor | aplicación web | Androide | iOS |
---|
Inglés | ✓ | ✓ | ✓ | ✓ |
chino simplificado | ✓ | ✓ | ✓ | ✓ |
chino tradicional | | ✓ | ✓ | ✓ |
Francés | ✓ | ✓ | ✓ | |
Alemán | | ✓ | ✓ | |
hindi | | | ✓ | |
coreano | | ✓ | ✓ | |
portugués | ✓ | | ✓ | |
rumano | | ✓ | ✓ | |
ruso | ✓ | ✓ | ✓ | ✓ |
Español | ✓ | ✓ | ✓ | ✓ |
tailandés | | ✓ | | |
ucranio | ✓ | ✓ | ✓ | ✓ |
vietnamita | ✓ | | | |
Se aceptan más traducciones. Además de los idiomas enumerados anteriormente, me interesan especialmente el árabe, bengalí, indonesio, urdu, japonés, turco y persa.
Tercero
Proyectos
- Adaptador Arango DB
- Adaptador DynamoDB (obsoleto)
Licencias
- Los avatares de demostración y algunos otros gráficos son de https://www.pexels.com/ bajo licencia CC0 y https://pixabay.com/ bajo su licencia.
- Los patrones de fondo web y Android son de http://subtlepatterns.com/ bajo licencia CC BY-SA 3.0.
- Los íconos de Android son de https://material.io/tools/icons/ bajo licencia Apache 2.0.
Capturas de pantalla
Androide
iOS
Web de escritorio
Web móvil
Cadenas de SEO
Las palabras "chat" y "mensajería instantánea" en chino, ruso, persa y algunos otros idiomas.
- 聊天室 即時通訊
- чат мессенджер
- インスタントメッセージ
- 인스턴트 메신저
- پیام رسان فوری
- تراسل فوري
- فوری پیغام رسانی
- Nhắn tin tức thời
- anlık mesajlaşma sohbet
- mensaje instantáneo
- pesan instantáneo
- mensajería instantánea
- চ্যাট ইন্সট্যান্ট মেসেজিং
- चैट त्वरित संदेश
- তাৎক্ষণিক বার্তা আদান প্রদান