Conecte con los clientes de iOS y Android a SockJS Backend

Estoy desarrollando el backend de mensajería de WebSocket usando Spring WebSockets , que utiliza el protocolo SockJS + STOMP. La razón por la cual no usar WebSockets es porque necesitaré aprovechar la integración de seguridad que SockJS provee en Spring WebSockets y otras características de SockJS, como habitaciones, suscripciones, etc. Me preguntaba si esta es una buena opción para usar De manera que las aplicaciones móviles (iOS y Android) y las aplicaciones cliente Web puedan conectarse fácilmente al servidor back-end y realizar la mensajería. En caso afirmativo, ¿qué bibliotecas puedo utilizar para iOS y Android?

En la página de SockJS GitHub también se enumeran las bibliotecas de clientes disponibles, pero no iOS ni Android. Por lo tanto, me pregunto si SockJS es incluso vale la pena usar sólo por eso.

He encontrado que para el cliente de iOS Primus-Objc ( GitHub página ) la biblioteca alegando que pueden conectarse a native WebSockets, Socket.IO, SockJS or perhaps engine.io. Es que una declaración verdadera? Y si eso es cierto, ¿qué pasa con la calidad de esa biblioteca?

Y el evento si está bien usar SockJS en la parte posterior, entonces también sería posible mostrar un código de ejemplo para iOS y Android para que pueda realizar una prueba de concepto en dispositivos móviles?

Si SockJS no es una buena opción para mí, entonces sería mejor que construir mi aplicación de mensajería con Socket.io + Node.js (usando JavaScript). Socket.io me parece que todas las bibliotecas de cliente necesarias para iOS ( biblioteca oficial de Socket.IO chicos ) y Android ( biblioteca oficial de Socket.IO chicos ).

Otra opción puede ser utilizar la biblioteca Netty-Socket.io y construir cada punto final manualmente sin ninguna ayuda de Spring Framework (que estoy considerando utilizar) pero hay un pequeño desafío que tendré que abordar, que es la seguridad. Alguien en realidad ya intentó hacerlo ( el mismo autor hizo la pregunta en la página oficial de Netty-Socket.IO Github ), pero parece que no tuvo suerte en solucionarlo todavía.

Tal vez hace más de un año desde que se hizo la pregunta. Pero, porque está consiguiendo en los primeros resultados cuando Google para SockJS + Android. Por lo tanto, estoy publicando mi respuesta.

De mi experiencia con un proyecto reciente en el que trabajé, pudimos utilizar un cliente STOMP, como el que está aquí , para conectarnos al backend Spring Websocket de la aplicación nativa de Android.

Y desde el navegador, todavía se puede usar el cliente SockJS para obtener compatibilidad entre navegadores a websockets con fallback.

Una nota para mencionar que al usar sólo el cliente STOMP para conectarse a websocket nativo, la URL será algo como ws: // mydomain / SockJSEndpoint / websocket , y al usar el cliente SockJS desde el navegador, la URL será como http : // mydomain / SockJSEndpoint.

SockJS puede ser interesante porque proporciona transporte no-ws. El uso de WebSockets puede no ser posible en todas las situaciones.

Hay un cliente de SockJs multiplataforma del proyecto OpenFL :

https://github.com/jeremyfa/openfl-sockjs

No probado lo bien que funciona, pero al menos para Android está utilizando JavaScript desde dentro de WebView, por lo que no debe ser diferente a JavaScript. Una vez más, no está claro qué tan fuerte está acoplado con OpenFL, pero el enfoque de usar WebView y el cliente SockJS de acciones podría probablemente ser reutilizado.

  • Adición de efecto de arrastrar natural a ImageView igual que las cabeceras de chat de Facebook Messanger utilizando la biblioteca de rebote
  • Subida múltiple de archivos con OkHttp + Spring
  • Xml spring para android con gradle
  • Configurar un cliente Stomp en android con el marco de Spring en el lado del servidor
  • Establecer encabezados utilizando resorte android resttemplate y anotaciones android
  • Implementación de paquetes parecidos a Spring en Android
  • Android Httpclient
  • Lea el cuerpo de la respuesta en un interceptor de primavera de Android
  • Primavera RestTemplate HTTP Post con parámetros causa error 400 solicitud incorrecta
  • ¿Por qué debo usar Spring Android?
  • Seguridad de Primavera Angularjs + Android REST
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.