️ Lembrete especial: se o download do Github for lento, acesse: https://gitee.com/jackjiang/MobileIMSDK O código está totalmente sincronizado, então fique à vontade para fazer o download. ️
❤️Últimas notícias: Hongmeng A próxima versão do MobileIMSDK foi lançada❤️
1. Diretório de atalho
1.1. Informação teórica
- Teoria de programação de rede clássica "Explicação detalhada de TCP/IP" (versão de leitura on-line)
1.2. Informações relacionadas
- Log de atualização da versão do MobileIMSDK
- Perguntas frequentes sobre o MobileIMSDK?
- Relatório de teste de desempenho do MobileIMSDK
1.3. Casos de produtos
- Versão de teste do RainbowChat?
- Visualização da captura de tela da versão de teste do RainbowChat
- Alguns dados operacionais não confidenciais de um determinado Chat
1.4. Instalação de demonstração
- Ajuda de instalação e uso da demonstração do cliente (Android)
- Ajuda de instalação e uso da demonstração do cliente (iOS)
- Ajuda de instalação e uso da demonstração do cliente (Java)
- Demonstração e descrição da demonstração do cliente (H5)
- Demonstração e explicação da demonstração do cliente (miniaplicativo WeChat)
- Demonstração e instruções de demonstração do cliente (Uniapp)
- Demonstração e explicação da demonstração do cliente (Hongmeng Next)?
- Ajuda para implantação e uso de demonstração no lado do servidor
1.5. Guia de Desenvolvimento
- Guia de desenvolvimento de cliente (Android)
- Guia de Desenvolvimento de Cliente (iOS)
- Guia de Desenvolvimento de Cliente (Java)
- Guia de Desenvolvimento de Cliente (H5)
- Guia de Desenvolvimento de Cliente (Mini Programa WeChat)
- Guia de Desenvolvimento de Cliente (Uniapp)
- Guia de desenvolvimento de cliente (Hongmeng Next)
- Guia de desenvolvimento de servidor
1.6. Documentação da API
- Documentação da API do SDK do cliente (Android): versão TCP, versão UDP
- Documentação da API do SDK do cliente (iOS): versão TCP, versão UDP
- Documentação da API do SDK do cliente (Java): versão TCP, versão UDP
- Documentação da API do SDK do cliente (H5): Clique aqui para entrar
- Documentação da API do SDK do cliente (miniaplicativo WeChat): Clique aqui para entrar
- Documentação da API do SDK do cliente (Uniapp): Clique aqui para entrar
- Documentação da API do SDK do cliente (Hongmeng Next): manual completo, documentação da API
- Documentação da API do SDK do servidor
1.7.Baixar pacote
- Download do pacote da versão mais recente do MobileIMSDK?
- Endereço estrangeiro: endereço Github do MobileIMSDK
- Endereço doméstico: endereço de administrador de nuvem de código do MobileIMSDK (acesso rápido!)
1.8. Aprendizagem e comunicação
- Comunidade de intercâmbio técnico: clique aqui para entrar
- Discussão de FAQ: Clique aqui para entrar?
- Grupo Q de intercâmbio técnico:
215477170
? - Para suporte técnico/cooperação/consulta, entre em contato com o autor QQ:
413980957
(Sobre o autor?) - Siga minha conta oficial: :point_down: :point_down:
2. Introdução ao Projeto
MobileIMSDK é uma estrutura original de camada de comunicação IM desenvolvida especificamente para terminais móveis:
- Foi testado por 10 anos;
- Ultra leve e altamente refinado, o pacote lib tem até 50 KB;
- Cuidadosamente encapsulado, um conjunto de APIs suporta elegantemente três protocolos: UDP , TCP e WebSocket (provavelmente o único de código aberto em toda a rede);
- O cliente suporta iOS, Android, Java padrão, H5 (ainda não é de código aberto), miniprograma (ainda não é de código aberto), Uniapp (ainda não é de código aberto), Hongmeng Next (SDK ainda não é de código aberto, código-fonte completo de demonstração);
- O servidor é baseado em Netty, com excelente desempenho e fácil expansão :point_left:
- Ele pode interoperar perfeitamente com o projeto irmão MobileIMSDK-Web para realizar bate-papo na web ou push, etc.;
- Ele pode ser aplicado a vários cenários, como aplicativos de bate-papo entre dispositivos e redes, OA corporativo e envio de mensagens.
O projeto MobileIMSDK tem sido atualizado continuamente desde outubro de 2013 (a versão mais recente é v6.5, clique aqui para ver o log de atualização da versão. Após 10 anos, foi inicialmente usado como a camada inferior de mensagens instantâneas para um produto de uso próprio). e foi desenvolvido completamente do zero.
Atualmente, a versão mais recente do Hongmeng Next foi desenvolvida. Espero que possa inspirar e ajudar os necessitados.
Você pode precisar de: Veja mais perguntas e respostas sobre o MobileIMSDK.
Outro projeto irmão: a estrutura leve de mensagens instantâneas do lado da Web: o MobileIMSDK-Web também está sendo continuamente atualizado e é dedicado ao bate-papo na Web e ao envio de mensagens em telefones celulares ou PCs.
3. Atualização síncrona de hospedagem de código
código nuvem gitee
- Hospedagem de código: https://gitee.com/jackjiang/MobileIMSDK
- Comunidade de Tecnologia: Clique para ver mais informações
GitHub.com
- Hospedagem de código: https://github.com/JackJiang2011/MobileIMSDK
- Comunidade de Tecnologia: Clique para ver mais informações
Log de atualização da versão do MobileIMSDK: Clique aqui para ver?
4. Metas de design
Deixe os desenvolvedores se concentrarem no desenvolvimento da lógica do aplicativo复杂的即时通讯算法交由SDK开发人员
,解偶即时通讯应用开发的复杂性
.
5. Composição do quadro
Toda a estrutura do MobileIMSDK consiste nas 7 partes a seguir:
- SDK do cliente Android: usado para a versão Android do cliente de mensagens instantâneas, suporta Android 4.0 e superior, consulte a documentação da API;
- SDK do cliente iOS: usado para desenvolver o cliente de mensagens instantâneas iOS, suporta iOS 12.0 e superior, consulte a documentação da API;
- SDK do cliente Java: usado para desenvolver clientes de mensagens instantâneas para PC multiplataforma, com suporte para Java 1.6 e superior, consulte a documentação da API;
- SDK do cliente H5: Ainda não existe uma versão de código aberto, verifique a versão anotada refinada;
- WeChat Mini Program SDK: Ainda não existe uma versão de código aberto, verifique a versão editada e anotada;
- Uniapp SDK: Ainda não existe uma versão de código aberto, verifique a versão editada e anotada;
- Hongmeng Next SDK: Atualmente não existe uma versão de código aberto do SDK (veja a versão anotada refinada) e o código-fonte completo do projeto da Demo;
- Server SDK: usado para desenvolver servidores de mensagens instantâneas, suporta Java 1.7 e superior, consulte a documentação da API.
A arquitetura de toda a estrutura do MobileIMSDK consiste em:
O MobileIMSDK tem sido continuamente desenvolvido e atualizado, e o cliente Hongmeng Next é a mais recente conquista do projeto MobileIMSDK.
Além disso: o MobileIMSDK pode interoperar perfeitamente com seu projeto irmão MobileIMSDK-Web, permitindo assim bate-papo ou push na página da Web.
6. Características técnicas
- Testado pelo tempo: após 10 anos, ele foi continuamente atualizado desde a era Andriod 2.3 e iOS 5.0 até o presente (não está de forma alguma inacabado);
- Super leve: pacote lib altamente refinado com até 50 KB;
- Múltiplos protocolos: Pode ser a única estrutura de código aberto desse tipo em toda a rede que pode suportar três protocolos, UDP, TCP e WebSocket, simultaneamente com um conjunto de APIs?;
- Múltiplas redes: Implementações cuidadosamente otimizadas dos protocolos TCP, UDP e WebSocket podem ser aplicadas a redes de satélite, redes móveis, IoT incorporada e outros cenários;
- Cobertura multiterminal: O cliente suporta iOS, Android, Java padrão, H5, miniaplicativo WeChat, Uniap e Hongmeng Next;
- Custo-benefício eficiente: implementação exclusiva do protocolo UDP, sem características de conexão, pode atingir maior carga de rede e capacidades de rendimento nas mesmas condições;
- Direção da mensagem: suporta todas as direções possíveis de mensagens na tecnologia de mensagens instantâneas, um total de 3 tipos (ou seja, C2C, C2S, S2C);
- Pegajoso e meio pacote: resolve elegantemente os problemas clássicos de pegajoso e meio pacote do TCP em cada extremidade. A camada inferior é encapsulada e a camada de aplicação é completamente imperceptível;
- Mecanismo de QoS: Mecanismo completo de garantia de entrega de mensagens (retransmissão automática, desduplicação de mensagens, feedback de status, etc.) para garantir que nenhuma mensagem seja perdida;
- Robusto e confiável: a prática mostrou que é muito adequado para operação estável e confiável em ambientes de alta latência, intercontinentais e de diferentes padrões de rede;
- Recuperação de desconexão de rede: Tem a capacidade de detectar automaticamente condições de rede e curar automaticamente desconexões de rede;
- Algoritmo original: O algoritmo principal e a implementação são todos originais, garantindo espaço para melhorias e melhorias contínuas;
- Múltiplos modos: Predefinir vários modos de sensibilidade em tempo real para controlar o imediatismo, o tráfego e o consumo de energia do cliente de acordo com diferentes cenários;
- Compressão de dados: Implementada com protocolo próprio, a compressão de dados pode ser personalizada no futuro para controlar de forma flexível o tráfego do cliente e o rendimento da rede do servidor;
- Altamente encapsulado: A interface API altamente encapsulada garante a simplicidade da chamada e também a torna aplicável a mais cenários de aplicação;
- Suporte Web: Ele pode interoperar perfeitamente com o projeto irmão MobileIMSDK-Web para realizar bate-papo ou push em páginas da Web, etc.;
- Boa escalabilidade: O servidor é baseado no Netty e herda a excelente alta escalabilidade do Netty;
- Excelente desempenho: o servidor herda os recursos de alto desempenho e alto rendimento do Netty e é adequado para cenários de servidor de alto desempenho.
Todos os três tipos de tendências de mensagens instantâneas suportadas pelo MobileIMSDK são:
(1) Cliente para Cliente (C2C): É iniciado por um cliente e o destinatário é outro cliente;
(2) Cliente para Servidor (C2S): É iniciado por um cliente e o destinatário é o servidor;
(3) Servidor para Cliente (S2C): É iniciado pelo servidor e o destinatário é um cliente.
Você pode precisar de: Veja mais perguntas e respostas sobre o MobileIMSDK.
7. Teste de desempenho
Os testes de estresse mostram que quando o MobileIMSDK é usado em cenários push, a carga teórica de uma única máquina pode se aproximar de dezenas de milhões. Quando usado em aplicativos de chat, a carga em uma única máquina pode chegar a centenas de milhares.
Claro, cada aplicação tem suas próprias características e diferenças. Avalie-a com base em cenários específicos. Os dados de teste são apenas para referência.
Relatório de teste de desempenho: Clique aqui para visualizar.
8. Programa de demonstração
- Demonstração do cliente Android: Clique aqui para instalar e usar;
- Demonstração do cliente iOS: Clique aqui para instalar e usar;
- Demonstração do cliente Java: Clique aqui para instalar e usar;
- Demonstração do cliente H5: Clique aqui para ver a introdução;
- Demonstração do Mini Programa WeChat: Clique aqui para ver a introdução;
- Demonstração do Uniapp: Clique aqui para ver a introdução;
- Próxima demonstração de Hongmeng: Clique aqui para ver a introdução?;
- Demonstração do servidor: Clique aqui para instalar e usar.
9. Casos de aplicação
① APP de bate-papo em nível de produto baseado em MobileIMSDK:
Introdução detalhada, experiência de download ou visualização de capturas de tela em execução.
② Caso MobileIMSDK sob alto atraso de rede:
Um determinado produto comercial baseado no MobileIMSDK, uma vez operado em um ambiente de rede intercontinental complexo, o atraso de comunicação ponta a ponta pode chegar a mais de 600 ms quando a rede intercontinental está ocupada (o atraso unidirecional com o servidor é de cerca de 300 ms). , e geralmente quando as pessoas visitam os portais domésticos, a latência dos portais convencionais é de cerca de 20 a 50 ms. Clique aqui para visualizar dados operacionais não confidenciais por um determinado período.
10. Download do pacote (tudo em um)
? ① Versão mais recente (endereço no exterior): download do pacote Github
? ② Versão mais recente (endereço doméstico): download do pacote gitee em nuvem de código (acesso rápido! ?)
Nota: O pacote de versão mais recente contém código-fonte de demonstração completo, código-fonte SDK, documentação da API, pacote de distribuição compilado, etc.
11. Cenários típicos de aplicação
Cenário 1: APP de bate-papo
- Descrição do aplicativo: Pode ser usado para desenvolver ferramentas de chat semelhantes ao WeChat, QQ, etc.
- Direção da mensagem: Todos os tipos de C2C, C2S e S2C precisam ser usados.
- Observação especial: o MobileIMSDK não define a lógica e os protocolos da camada de aplicativo dos aplicativos de bate-papo. Os desenvolvedores podem defini-los e implementá-los por conta própria.
Cenário 2: Envio de mensagem
- Descrição do aplicativo: Pode ser usado para vários tipos de APPs que precisam enviar informações aos clientes em tempo real.
- Direção da mensagem: apenas uma direção de mensagem do S2C é usada, que é o cenário de aplicação mais simples do MobileIMSDK.
Cenário 3: OA empresarial
- Descrição do aplicativo: pode ser usado para enviar diversas mensagens, como instruções, documentos oficiais e aplicativos para OA corporativo em tempo real, melhorando muito a experiência do usuário, e pode ser estendido a dispositivos móveis.
- Direção da mensagem: apenas uma direção de mensagem do S2C é usada, que é o cenário de aplicação mais simples do MobileIMSDK.
Cenário 4: Versão aprimorada do OA empresarial
- Descrição do aplicativo: Ele pode ser usado para realizar a interação em tempo real de várias mensagens em nível de sistema e de usuário no OA corporativo, fazendo uso total da tecnologia de mensagens instantâneas para aumentar o valor do OA tradicional.
- Tendência de mensagens: Todos os tipos de C2C, C2S e S2C podem ser usados. Isso não é diferente dos APPs de bate-papo em muitos aspectos. No entanto, o OA corporativo tem seu próprio modelo e lógica de gerenciamento de relacionamento com o usuário, que é muito mais simples do que o bate-papo completo. APLICATIVOS.
12. Guia de Desenvolvimento
- Guia de desenvolvimento de cliente Android: Clique aqui para visualizar;
- Guia de desenvolvimento de cliente iOS: Clique aqui para visualizar;
- Guia de desenvolvimento de cliente Java: Clique aqui para visualizar;
- Guia de desenvolvimento do cliente H5: Clique aqui para visualizar;
- Guia de desenvolvimento do miniprograma WeChat: Clique aqui para visualizar;
- Guia de desenvolvimento Uniapp: Clique aqui para visualizar;
- Guia de desenvolvimento do Hongmeng Next: Clique aqui para ver;
- Guia de desenvolvimento do lado do servidor: Clique aqui para visualizar.
13. Método de autorização
Você pode usar o MobileIMSDK gratuitamente e para sempre, por exemplo, para pesquisa, estudo e até mesmo para fins comerciais. No entanto, é proibido usá-lo para fins comerciais além do escopo da licença. Para obter instruções de autorização mais detalhadas, consulte a seção "12. Métodos de autorização" na postagem de introdução da comunidade MobileIMSDK.
Nota complementar: Se precisar de mais suporte técnico ou cooperação técnica, entre em contato com o autor, QQ: 413980957
(:point_right: Sobre o autor).
14. Informações de contato
- Área de discussão, aprendizagem e informação: :earth_americas: Clique aqui para entrar;
- Grupo de troca de tecnologia de mensagens instantâneas:
185926912
(para mais grupos QQ, clique aqui para entrar); - Por favor, envie bugs e sugestões para: :love_letter:
[email protected]
; - Para treinamento técnico/transferência/cooperação/consulta, entre em contato com o autor QQ: :penguin:
413980957
, WeChat: hellojackjiang
(:point_right: Sobre o autor).
15. Doe ao autor
Excelente código aberto precisa do seu apoio para ir mais longe. Agradeço sinceramente seu apoio e compreensão e espero que você possa se beneficiar do código aberto.
- Link para doação: Clique aqui para entrar.
16. Siga o autor
- Sobre o autor: Clique para entrar?
- Atenção recomendada: BeautyEye Engineering
- Endereço do blog: clique para entrar
- Página inicial do Github: clique para entrar
- Minha conta oficial: :point_down: :point_down:
Apêndice: Capturas de tela de demonstração em execução
1. O efeito da demonstração do MobileIMSDK em execução no Hongmeng Próximo:
编译和运行:
visualize o código-fonte completo do Hongmeng Next Demo.
2. Efeito de execução do MobileIMSDK Demo no Android e iOS:
安装和使用:
Entre na página de ajuda de demonstração da versão Android, entre na página de ajuda de demonstração da versão iOS.
3. Efeito de execução do MobileIMSDK Demo no lado H5:
4. O efeito da demonstração do MobileIMSDK em execução no miniaplicativo WeChat:
5. O efeito da demonstração do MobileIMSDK em execução no Uniapp:
6. Efeito de execução do MobileIMSDK Demo no Windows:
安装和使用:
Entre na página de ajuda da versão Java Demo.
7. Efeito de execução do MobileIMSDK Demo no Mac OS X:
安装和使用:
Entre na página de ajuda da versão Java Demo.
8. Efeito de execução de demonstração do cliente da versão MobileIMSDK-Web:
1)MobileIMSDK-Web Demo在手机端浏览器运行效果:
Veja os detalhes da versão do MobileIMSDK-Web.
2)MobileIMSDK-Web Demo在PC端多种主流浏览器的运行效果:
Veja os detalhes da versão do MobileIMSDK-Web.
Caso 1: Produto de IM móvel completo baseado em MobileIMSDK
关于RainbowChat产品的更多资料请见:
Capturas de tela de todas as funções dos produtos RainbowChat (vídeo da vida real: Android e iOS).
[Nota especial]: Como a imagem do github foi bloqueada, a imagem não foi sincronizada com sucesso. Verifique nas capturas de tela de todas as funções do produto RainbowChat! :ponto_esquerdo: :ponto_esquerdo:
更多清晰运行截图请见:
Capturas de tela de todas as funções do produto RainbowCha.
Caso 2: Sistema de mensagens instantâneas baseado na Web baseado em MobileIMSDK-Web
Interface principal do produto RainbowChat-Web:
更多截图和视频:
Clique aqui para mais capturas de tela e clique aqui para mais vídeos de demonstração.
Interface principal do produto RainbowChat-Web (quando a janela de bate-papo está em tela cheia):
更多截图和视频:
Clique aqui para mais capturas de tela e clique aqui para mais vídeos de demonstração.
Interface principal do produto RainbowChat-Web (efeito de UI independente):
更多截图和视频:
Clique aqui para mais capturas de tela e clique aqui para mais vídeos de demonstração.