Conéctese con clientes iOS y Android a SockJS Backend

Estoy desarrollando el backend de postría WebSocket utilizando Spring WebSockets , que utiliza el protocolo SockJS + STOMP. La razón por la que no se utilizan WebSockets simples es porque necesitaré aprovechar la integración de security que ofrece SockJS en Spring WebSockets y también otras características interesantes de SockJS, como habitaciones, suscripciones, etc. Me preguntaba si esta es una buena opción para usar para que las aplicaciones de cliente mobile (iOS y Android) y Web puedan conectarse fácilmente con el server back-end y realizar posts. En caso afirmativo, ¿qué bibliotecas puedo usar para iOS y Android?

En la página SockJS GitHub también están enumerando las bibliotecas cliente disponibles, pero no iOS ni Android. Por lo tanto, me pregunto si SockJS incluso vale la pena usar solo por eso.

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

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

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

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

Tal vez haya pasado más de un año desde que se hizo la pregunta. Pero, porque está obteniendo los primeros resultados cuando Google está buscando SockJS + Android. Entonces, estoy publicando mi respuesta.

Por mi experiencia con un proyecto reciente en el que trabajé, pudimos usar un cliente STOMP, como el que tenemos aquí , para conectarnos con el backend Spring Websocket de la aplicación nativa de Android.

Y desde el browser, aún puede usar el cliente SockJS para get compatibilidad en todos los browseres con los sitios web con respaldo.

Una nota para mencionar que cuando se usa solo un cliente STOMP para conectarse a un websocket nativo, la URL será algo así como ws: // mydomain / SockJSEndpoint / websocket , y al usar el cliente SockJS desde el browser, la URL será como http : // mydomain / SockJSEndpoint.

SockJS puede ser interesante porque proporciona transportes que no son ws. Solo usar 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 se probó qué tan bien funciona, pero al less para Android está usando JavaScript desde dentro de WebView, por lo que no debería ser diferente de JavaScript. Nuevamente, no está claro qué tan fuertemente está acoplado con OpenFL, pero el enfoque de usar WebView y el cliente SockJS de stock probablemente podría reutilizarse.