Pregunta

Estoy buscando en la construcción de una aplicación de tipo mensajería instantánea con pila de Java (para el servidor por lo menos). Yo estaría interesado en ver cualquier información / consejos sobre cómo aplicaciones como Skype trabajo / AIM / MSN, así como sabe cualquier tecnologías / API que pueden ser relevantes. Sin revelar la idea en sí, que es quizá más parecido a Google Wave que Skype, pero la información útil para cualquiera es bienvenido muy.

Los puntos específicos ya he pensado incluyen:

  • Servidor Vs P2P ... por razones de registro de mi sistema requerirá toda la comunicación que pasar por un servidor central. ¿Es así como otras herramientas de mensajería instantánea de trabajo ... especialmente cuando audio / vídeo entra en la ecuación?
  • Esquí de la comunicación con otros sistemas. ¿Hay APIs para esto o lo hacen todos los proveedores de mensajería instantánea trabajar duro para mantener en secreto su protocolo? La naturaleza de lo que estoy diseñando la integración medios sólo podría probablemente ser limitada, pero sin duda parece que vale la pena desde un punto de vista comercial
¿Fue útil?

Solución

Conoce XMPP . Hay un montón de bibliotecas de Java y la mayoría de los principales clientes de mensajería instantánea compatible con XMPP.

Otros consejos

Como se ha mencionado, el uso XMPP (siglas de Extensible Messaging and Presence Protocol). Probablemente se puede escapar mediante el uso de un servidor XMPP existente (por ejemplo, Openfire, ejabberd, etc) sin necesidad de programar uno mismo. Hay algo llamado libpurple para la conexión a través de protocolos de mensajería instantánea de propiedad.

Para hacer cosas que estándar XMPP no se puede ver en los robots de cliente o Componentes de servidores externos .

Hay dos maneras de construir una aplicación de mensajería móvil: funciones de chat de desarrollo:

  • Crear soluciones propietarias a partir de cero en el local
  • Integración con soluciones de mensajería SDK móviles.

Aquí hay un artículo sobre el desglose de los costos de desarrollo en bruto estimado, ¿Cuánto es el costo de obtención de WhatsApp? Se trata de un mínimo coste fijo inicial de $ 260.000 desarrollo durante 3 meses con unos 6 ingenieros y un gerente de producto en un lugar como Silicon Valley o Nueva York para construir las funciones de chat móviles básicos desde cero. Por no mencionar el costo de los servidores que ejecutan, mantenimiento, escalabilidad y características de expansión en el futuro. El coste de oportunidad de gastar el dinero y tiempo en la construcción de las funciones de chat son los recursos que no se pueden asignar en sus características principales (a menos que esté construyendo otra Whatsapp o Facebook Messenger).

Si su plan es no reinventar la rueda, o que está conservando los recursos de ingeniería y expertos puestos a un mejor uso, o simplemente probar el agua con las funciones de chat, a continuación, a menudo es más simple y más rentable para integrar la tercera parte o soluciones de código abierto directamente. A menudo ofrecen biblioteca lista para usar la interfaz de usuario personalizable, plataformas cruzadas SDK, API back-end e integración WebHooks, etc. La misma idea que el uso de Google Analytics, Parse / Firebase , Crashlytics, AFNetworking, Facebook API, Socket.io , raya , Twilio para SMS, Hyphenate.io , etc. . Muchas empresas deciden construir internamente soluciones de chat en un principio, pero luego se dan cuenta de que sus soluciones no se escalan como se esperaba ya que la base de clientes crece rápidamente.

Sin embargo, antes de empezar a conseguir las manos sucias integrar funciones de chat si la integración tercera parte o solución interna, es posible que desee investigar las siguientes áreas:

  • La rentabilidad : ROI de las soluciones internas? Lograr las economías de escala? La construcción de la infraestructura de ingeniería es muy caro, contando el coste de desarrollo inicial fija, los costes de funcionamiento, mantenimiento, funciones de expansión, etc.
  • Escalabilidad : baja latencia, la escala horizontal, la escala vertical, la escala y sin tiempo de inactividad, el rendimiento general, etc.
  • Fiabilidad : estabilidad, fiabilidad, tiempo de inactividad, garantía de entrega de mensajes, sin perdida de mensaje y del embalaje, etc
  • dispositivo cliente móvil: dispositivo de duración de la batería, el uso de datos móviles, la conexión a Internet no permanente y lento,
  • Propiedad : Propietario vs gradas de la estructura de precios frente de licencia con la implementación privada y hosting
  • Seguridad : encriptación, autenticación, privacidad
  • Portabilidad : Apoyo a través de diferentes plataformas. es decir, los móviles (Android, iOS), de escritorio (MacOS, Windows), y varios de los navegadores web.
  • Características : uno-a-uno de chat, chat de grupo, gran volumen y conversaciones simultáneas, inicio de sesión en múltiples dispositivos, compartir archivos, intercambio de archivos y reproducción de audio, vídeo / llamadas de voz, etc.
  • Tecnologías : Hay muchas tecnologías estandarizadas por ahí, como XMPP , MQTT , HTTP largo de votación, Socket.io , etc. la mayoría de las soluciones propietarias de mensajería construir sobre los protocolos estándar, por ejemplo, Facebook Messenger se basa en MQTT . Muchos tercera parteLos vendedores ya ofrecen grandes soluciones API y SDK para aliviar los dolores de cabeza de los desarrolladores, tales como Hyphenate.io.
  • Recursos humanos : ¿Es usted capaz de encontrar los ingenieros con las áreas de especialización de cumplir todos los requisitos anteriores? Otra cosa a tener en cuenta es la posibilidad de incorporar chatbots de moda, el análisis de grandes volúmenes de datos (en especial de servicio al cliente), encriptación, etc. Compruebe si SDK tercero del partido, de código abierto, o su equipo de ingeniería son capaces de proporcionar esas flexibilidades o Diseño de la pista de aterrizaje potencial. Algunos móvil proveedor de soluciones de mensajería, como Hyphenate.io , tiene rica charla características de conjunto y una gran flexibilidad para la expansión listo para que deshaga.

Por último, las respuestas a sus pensamientos,

  1. Servidor Vs P2P ... por razones de registro de mi sistema requerirá toda la comunicación que pasar por un servidor central. ¿Es así como otras herramientas de mensajería instantánea de trabajo ... especialmente cuando audio / vídeo entra en la ecuación?

Separar se encarga de la comunicación o difusión de mensajes para usted también el establecimiento de la llamada de vídeo / voz.

  1. Esquí de la comunicación con otros sistemas. ¿Hay APIs para esto o lo hacen todos los proveedores de mensajería instantánea trabajar duro para mantener en secreto su protocolo? La naturaleza de lo que estoy diseñando la integración medios sólo podría probablemente ser limitada, pero sin duda parece que vale la pena desde un punto de vista comercial

** En cuanto a la seguridad de las comunicaciones, hay 3 componentes principales que es posible que desee ver en la TLS / SSL para la seguridad de capa de transporte, OAuth 2.0 para la autenticación y el cifrado de extremo a extremo. **

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top