️ Recordatorio especial: si Github tarda en descargarse, vaya a: https://gitee.com/jackjiang/MobileIMSDK El código está completamente sincronizado, así que no dude en descargarlo. ️
❤️Últimas noticias: Hongmeng ha lanzado la próxima versión de MobileIMSDK❤️
1. Directorio de accesos directos
1.1. Información teórica
- Teoría de programación de redes clásica "Explicación detallada de TCP/IP" (versión de lectura en línea)
1.2. Información relevante
- Registro de actualización de la versión MobileIMSDK
- ¿Preguntas frecuentes sobre MobileIMSDK?
- Informe de prueba de rendimiento de MobileIMSDK
1.3. Casos de productos
- ¿Versión de prueba de RainbowChat?
- Vista previa de captura de pantalla de la versión de prueba de RainbowChat
- Algunos datos operativos no sensibles de un determinado Chat
1.4. Instalación de demostración
- Ayuda para la instalación y el uso de la demostración del cliente (Android)
- Ayuda para la instalación y el uso de la demostración del cliente (iOS)
- Ayuda para la instalación y el uso de la demostración del cliente (Java)
- Demostración y descripción de la demostración del cliente (H5)
- Demostración y explicación de la demostración del cliente (subprograma WeChat)
- Demostración e instrucciones del Cliente Demo (Uniapp)
- ¿Demostración y explicación de demostración del cliente (Hongmeng Next)?
- Ayuda para la implementación y el uso de la demostración del lado del servidor
1.5. Guía de desarrollo
- Guía de desarrollo de clientes (Android)
- Guía de desarrollo de clientes (iOS)
- Guía de desarrollo de clientes (Java)
- Guía de desarrollo de clientes (H5)
- Guía de desarrollo de clientes (miniprograma WeChat)
- Guía de Desarrollo de Clientes (Uniapp)
- Guía de desarrollo de clientes (Hongmeng Next)
- Guía de desarrollo del servidor
1.6.Documentación API
- Documentación de la API del SDK del cliente (Android): versión TCP, versión UDP
- Documentación de la API del SDK del cliente (iOS): versión TCP, versión UDP
- Documentación de la API del SDK del cliente (Java): versión TCP, versión UDP
- Documentación de la API del SDK del cliente (H5): haga clic aquí para ingresar
- Documentación de la API del SDK del cliente (subprograma WeChat): haga clic aquí para ingresar
- Documentación API del SDK del cliente (Uniapp): Haga clic aquí para ingresar
- Documentación API del SDK del cliente (Hongmeng Next): manual completo, documentación API
- Documentación de la API del SDK del servidor
1.7. Descarga del paquete
- ¿Descarga del paquete de la última versión de MobileIMSDK?
- Dirección extranjera: dirección Github de MobileIMSDK
- Dirección nacional: dirección de alojamiento en la nube de código de MobileIMSDK (¡acceso rápido!)
1.8. Aprendizaje y comunicación
- Comunidad de intercambio técnico: haga clic aquí para ingresar
- Discusión de preguntas frecuentes: ¿Haga clic aquí para ingresar?
- Intercambio técnico Grupo Q:
215477170
? - Para soporte técnico/cooperación/consulta, comuníquese con el autor QQ:
413980957
(¿Acerca del autor?) - Sigue mi cuenta oficial: :point_down: :point_down:
2. Introducción al proyecto
MobileIMSDK es un marco de capa de comunicación IM original desarrollado específicamente para terminales móviles:
- Ha sido probado durante 10 años;
- Ultraligero y altamente refinado, el paquete lib tiene un tamaño de 50 KB;
- Cuidadosamente encapsulado, un conjunto de API admite elegantemente tres protocolos: UDP , TCP y WebSocket (probablemente el único de código abierto en toda la red);
- El cliente admite iOS, Android, Java estándar, H5 (aún no de código abierto), miniprograma (aún no de código abierto), Uniapp (aún no de código abierto), Hongmeng Next (SDK aún no de código abierto, código fuente completo de demostración);
- El servidor está basado en Netty, con excelente rendimiento y fácil expansión :point_left:
- Puede interoperar perfectamente con el proyecto hermano MobileIMSDK-Web para realizar chat web o push, etc. :point_left:
- Se puede aplicar a varios escenarios, como aplicaciones de chat entre dispositivos y redes, OA empresarial y envío de mensajes.
El proyecto MobileIMSDK se ha actualizado continuamente desde octubre de 2013 (la última versión es v6.5, haga clic aquí para ver el registro de actualización de la versión). Después de 10 años, se utilizó inicialmente como la capa inferior de mensajería instantánea para un producto de uso propio. y fue desarrollado completamente desde cero.
Actualmente, se ha desarrollado la última versión de Hongmeng Next. Espero que pueda inspirar y ayudar a los necesitados.
Es posible que necesites: Ver más preguntas y respuestas sobre MobileIMSDK.
Otro proyecto hermano: el marco liviano de mensajería instantánea del lado web: MobileIMSDK-Web también se actualiza continuamente y está dedicado al chat web y al envío de mensajes en teléfonos móviles o PC.
3. Actualización sincrónica del alojamiento del código.
código nube albergue
- Alojamiento de código: https://gitee.com/jackjiang/MobileIMSDK
- Comunidad Tecnológica: Haga clic para ver más información
GitHub.com
- Alojamiento de código: https://github.com/JackJiang2011/MobileIMSDK
- Comunidad Tecnológica: Haga clic para ver más información
Registro de actualización de la versión MobileIMSDK: ¿Haga clic aquí para verlo?
4. Objetivos de diseño
Deje que los desarrolladores se concentren en el desarrollo de la lógica de la aplicación复杂的即时通讯算法交由SDK开发人员
,解偶即时通讯应用开发的复杂性
.
5. Composición del marco
Todo el marco MobileIMSDK consta de las siguientes 7 partes:
- SDK del cliente Android: se utiliza para la versión Android del cliente de mensajería instantánea, es compatible con Android 4.0 y superior, consulte la documentación de la API;
- SDK del cliente iOS: se utiliza para desarrollar el cliente de mensajería instantánea de iOS, admite iOS 12.0 y superior, consulte la documentación de la API;
- SDK de cliente Java: se utiliza para desarrollar clientes de mensajería instantánea para PC multiplataforma, compatibles con Java 1.6 y superior, consulte la documentación de la API;
- SDK del cliente H5: aún no existe una versión de código abierto, verifique la versión anotada refinada;
- SDK del mini programa WeChat: aún no existe una versión de código abierto, verifique la versión editada y anotada;
- Uniapp SDK: aún no existe una versión de código abierto, verifique la versión editada y anotada;
- Hongmeng Next SDK: actualmente no existe una versión de código abierto del SDK (consulte la versión anotada refinada) y el código fuente completo del proyecto de la demostración;
- SDK de servidor: se utiliza para desarrollar servidores de mensajería instantánea, es compatible con Java 1.7 y superior; consulte la documentación de la API.
La arquitectura de todo el marco MobileIMSDK consta de:
MobileIMSDK se ha desarrollado y actualizado continuamente, y el cliente Hongmeng Next es el último logro del proyecto MobileIMSDK.
Además: MobileIMSDK puede interoperar perfectamente con su proyecto hermano MobileIMSDK-Web, permitiendo así chatear o enviar mensajes en la página web.
6. Características técnicas
- Probado en el tiempo: después de 10 años, se ha actualizado continuamente desde la era Andriod 2.3 e iOS 5.0 hasta el presente (de ninguna manera está inacabado);
- Súper liviano: paquete lib altamente refinado dentro de 50 KB;
- Múltiples protocolos: ¿puede ser el único marco de código abierto de su tipo en toda la red que puede admitir los protocolos UDP, TCP y WebSocket simultáneamente con un conjunto de API?;
- Múltiples redes: se pueden aplicar implementaciones de protocolos TCP, UDP y WebSocket cuidadosamente optimizadas a redes satelitales, redes móviles, IoT integrado y otros escenarios;
- Cobertura multiterminal: el cliente admite iOS, Android, Java estándar, H5, subprograma WeChat, Uniap y Hongmeng Next;
- Rentabilidad eficiente: la implementación única del protocolo UDP, sin características de conexión, puede lograr una mayor carga de red y capacidades de rendimiento en las mismas condiciones;
- Dirección del mensaje: admite todas las direcciones posibles de los mensajes en la tecnología de mensajería instantánea, un total de 3 tipos (es decir, C2C, C2S, S2C);
- Sticky y medio paquete: resuelve elegantemente los clásicos problemas de pegado y medio paquete de TCP en cada extremo. La capa inferior está encapsulada y la capa de aplicación es completamente imperceptible;
- Mecanismo QoS: mecanismo completo de garantía de entrega de mensajes (retransmisión automática, deduplicación de mensajes, retroalimentación de estado, etc.) para garantizar que no se pierda ningún mensaje;
- Robusto y confiable: la práctica ha demostrado que es muy adecuado para un funcionamiento estable y confiable en entornos estándar de red de alta latencia, intercontinentales y diferentes;
- Recuperación de desconexión de red: Tiene la capacidad de detectar automáticamente las condiciones de la red y reparar automáticamente las desconexiones de la red;
- Algoritmo original: el algoritmo central y la implementación son todos originales, lo que garantiza espacio para mejoras y mejoras continuas;
- Múltiples modos: preestablezca múltiples modos de sensibilidad en tiempo real para controlar la inmediatez, el tráfico y el consumo de energía del cliente según diferentes escenarios;
- Compresión de datos: implementada con su propio protocolo, la compresión de datos se puede personalizar en el futuro para controlar de manera flexible el tráfico del cliente y el rendimiento de la red del servidor;
- Altamente encapsulado: la interfaz API altamente encapsulada garantiza la simplicidad de las llamadas y también la hace aplicable a más escenarios de aplicaciones;
- Soporte web: puede interoperar perfectamente con el proyecto hermano MobileIMSDK-Web para realizar chat o envío de páginas web, etc. :point_left:
- Buena escalabilidad: el servidor se basa en Netty y hereda la excelente alta escalabilidad de Netty;
- Excelente rendimiento: el servidor hereda las características de alto rendimiento y alto rendimiento de Netty y es adecuado para escenarios de servidores de alto rendimiento.
Los tres tipos de tendencias de mensajes de mensajería instantánea admitidas por MobileIMSDK son:
(1) Cliente a Cliente (C2C): Lo inicia un cliente y el destinatario es otro cliente;
(2) Cliente a Servidor (C2S): lo inicia un cliente y el destinatario es el servidor;
(3) Servidor a Cliente (S2C): Lo inicia el servidor y el destinatario es un cliente.
Es posible que necesites: Ver más preguntas y respuestas sobre MobileIMSDK.
7. Prueba de rendimiento
Las pruebas de estrés muestran que cuando se utiliza MobileIMSDK en escenarios push, la carga teórica de una sola máquina puede acercarse a decenas de millones. Cuando se utiliza en aplicaciones de chat, la carga en una sola máquina puede alcanzar cientos de miles.
Por supuesto, cada aplicación tiene sus propias características y diferencias. Evalúela en función de escenarios específicos. Los datos de prueba son solo como referencia.
Informe de prueba de rendimiento: haga clic aquí para verlo.
8. Programa de demostración
- Demostración del cliente Android: haga clic aquí para instalarlo y usarlo;
- Demostración del cliente iOS: haga clic aquí para instalar y usar;
- Demostración del cliente Java: haga clic aquí para instalarlo y usarlo;
- Demostración del cliente H5: haga clic aquí para ver la introducción;
- Demostración del miniprograma WeChat: haga clic aquí para ver la introducción;
- Demostración de Uniapp: haga clic aquí para ver la introducción;
- Próxima demostración de Hongmeng: ¿Haga clic aquí para ver la introducción?;
- Demostración del servidor: haga clic aquí para instalarlo y usarlo.
9. Casos de aplicación
① APLICACIÓN de chat a nivel de producto basada en MobileIMSDK:
Introducción detallada, experiencia de descarga o visualización de capturas de pantalla en ejecución.
② Caso de MobileIMSDK con gran retraso de red:
Cierto producto comercial basado en MobileIMSDK alguna vez funcionó en un entorno de red intercontinental complejo. El retraso de comunicación de extremo a extremo puede llegar a más de 600 ms cuando la red intercontinental está ocupada (el retraso unidireccional con el servidor es de aproximadamente 300 ms). , y generalmente cuando la gente visita los portales nacionales La latencia es de aproximadamente 20 ~ 50 ms. Haga clic aquí para ver datos operativos no confidenciales durante un período determinado.
10. Descarga de paquetes (todo en uno)
① Última versión (dirección en el extranjero): descarga del paquete Github
② Última versión (dirección nacional): descarga del paquete code cloud gitee (¡acceso rápido!?)
Nota: El paquete de versión más reciente contiene el código fuente de demostración completo, el código fuente del SDK, la documentación de la API, el paquete de distribución compilado, etc.
11. Escenarios de aplicación típicos
Escenario 1: Aplicación de chat
- Descripción de la aplicación: Se puede utilizar para desarrollar herramientas de chat similares a WeChat, QQ, etc.
- Dirección del mensaje: Se deben utilizar todos los tipos de C2C, C2S y S2C.
- Nota especial: MobileIMSDK no define la lógica de la capa de aplicación ni los protocolos de las aplicaciones de chat. Los desarrolladores pueden definirlos e implementarlos por sí mismos.
Escenario 2: envío de mensajes
- Descripción de la aplicación: se puede utilizar para varios tipos de aplicaciones que necesitan enviar información a los clientes en tiempo real.
- Dirección del mensaje: solo se utiliza una dirección de mensaje de S2C, que es el escenario de aplicación más simple de MobileIMSDK.
Escenario 3: Acceso abierto empresarial
- Descripción de la aplicación: se puede utilizar para enviar varios mensajes, como instrucciones, documentos oficiales y aplicaciones para OA empresarial en tiempo real, lo que mejora en gran medida la experiencia del usuario y se puede extender a dispositivos móviles.
- Dirección del mensaje: solo se utiliza una dirección de mensaje de S2C, que es el escenario de aplicación más simple de MobileIMSDK.
Escenario 4: versión mejorada de OA empresarial
- Descripción de la aplicación: Se puede utilizar para realizar la interacción en tiempo real de varios mensajes a nivel de sistema y de usuario en OA empresarial, aprovechando al máximo la tecnología de mensajería instantánea para mejorar el valor del OA tradicional.
- Tendencia de mensajes: se pueden utilizar todos los tipos de C2C, C2S y S2C. Esto no es diferente de las aplicaciones de chat en muchos aspectos. Sin embargo, el OA empresarial tiene su propio modelo y lógica de gestión de relaciones con los usuarios, que es mucho más simple que el chat con todas las funciones. Aplicaciones.
12. Guía de desarrollo
- Guía de desarrollo de clientes de Android: haga clic aquí para ver;
- Guía de desarrollo de clientes iOS: haga clic aquí para verla;
- Guía de desarrollo de clientes Java: haga clic aquí para ver;
- Guía de desarrollo del cliente H5: haga clic aquí para ver;
- Guía de desarrollo del miniprograma WeChat: haga clic aquí para ver;
- Guía de desarrollo de Uniapp: haga clic aquí para ver;
- Hongmeng Próxima guía de desarrollo: haga clic aquí para ver;
- Guía de desarrollo del lado del servidor: haga clic aquí para verla.
13. Método de autorización
Puede utilizar MobileIMSDK de forma permanente y gratuita, como por ejemplo con fines de investigación, aprendizaje e incluso comerciales, pero está prohibido utilizarlo con fines comerciales más allá del contenido restringido por la Licencia. Respete los derechos de propiedad intelectual. Para obtener instrucciones de autorización más detalladas, consulte la sección "12. Métodos de autorización" en la publicación de introducción a la comunidad MobileIMSDK.
Nota complementaria: si necesita más soporte técnico o cooperación técnica, comuníquese con el autor, QQ: 413980957
(:point_right: Acerca del autor).
14. Información de contacto
- Área de discusión, aprendizaje e información: :earth_americas: Haga clic aquí para ingresar;
- Grupo de intercambio de tecnología de mensajería instantánea:
185926912
(Para más grupos QQ, haga clic aquí para ingresar); - Envíe errores y sugerencias a: :love_letter:
[email protected]
; - Para capacitación/transferencia/cooperación/consulta técnica, comuníquese con el autor QQ: :pingüino:
413980957
, WeChat: hellojackjiang
(:point_right: Acerca del autor).
15. Donar al autor
El excelente código abierto necesita su apoyo para llegar más lejos. Les agradezco sinceramente su apoyo y comprensión, y espero que puedan beneficiarse del código abierto.
- Enlace de donación: Haga clic aquí para ingresar.
16. Sigue al autor
- Sobre el autor: ¿Haz clic para entrar?
- Atención recomendada: BeautyEye Ingeniería
- Dirección del blog: haga clic para entrar
- Página de inicio de Github: haga clic para ingresar
- Mi cuenta oficial: :point_down: :point_down:
Apéndice: Demostración en ejecución de capturas de pantalla
1. Efecto de ejecución de la demostración de MobileIMSDK en Hongmeng Siguiente:
编译和运行:
vea el código fuente completo de Hongmeng Next Demo.
2. Efecto de ejecución de la demostración MobileIMSDK en Android e iOS:
安装和使用:
ingrese a la página de ayuda de demostración de la versión de Android, ingrese a la página de ayuda de demostración de la versión de iOS.
3. Efecto de ejecución de demostración de MobileIMSDK en el lado H5:
4. El efecto de la demostración de MobileIMSDK ejecutándose en el subprograma WeChat:
5. El efecto de la demostración de MobileIMSDK ejecutándose en Uniapp:
6. Efecto de ejecución de la demostración MobileIMSDK en Windows:
安装和使用:
Ingrese a la página de ayuda de demostración de la versión Java.
7. Efecto de ejecución de la demostración MobileIMSDK en Mac OS X:
安装和使用:
Ingrese a la página de ayuda de demostración de la versión Java.
8. Efecto de ejecución de demostración del cliente de versión web MobileIMSDK:
1)MobileIMSDK-Web Demo在手机端浏览器运行效果:
vea los detalles de la versión web de MobileIMSDK.
2)MobileIMSDK-Web Demo在PC端多种主流浏览器的运行效果:
vea los detalles de la versión MobileIMSDK-Web.
Caso 1: Producto de mensajería instantánea móvil con todas las funciones basado en MobileIMSDK
关于RainbowChat产品的更多资料请见:
Capturas de pantalla de todas las funciones de los productos RainbowChat (video de la vida real: Android e iOS).
[Nota especial]: Debido a que la imagen de github estaba bloqueada, la imagen no se sincronizó correctamente. Compruébelo en las capturas de pantalla de todas las funciones del producto RainbowChat. :punto_izquierda: :punto_izquierda:
更多清晰运行截图请见:
Capturas de pantalla de todas las funciones del producto RainbowCha.
Caso 2: sistema de mensajería instantánea basado en web basado en MobileIMSDK-Web
Interfaz principal del producto RainbowChat-Web:
更多截图和视频:
haga clic aquí para ver más capturas de pantalla y haga clic aquí para ver más vídeos de demostración.
Interfaz principal del producto RainbowChat-Web (cuando la ventana de chat está en pantalla completa):
更多截图和视频:
haga clic aquí para ver más capturas de pantalla y haga clic aquí para ver más vídeos de demostración.
Interfaz principal del producto RainbowChat-Web (efecto UI independiente):
更多截图和视频:
haga clic aquí para ver más capturas de pantalla y haga clic aquí para ver más vídeos de demostración.