2015-08-04 7 views
27

Pracuję z backendem przesyłania komunikatów WebSocket przy użyciu Spring WebSockets, który używa protokołu SockJS + STOMP. Powodem, dla którego nie należy używać zwykłych WebSockets jest to, że będę musiał wykorzystać integrację zabezpieczeń, którą SockJS zapewnia w Spring WebSockets, a także inne fajne funkcje SockJS, takie jak pokoje, subskrypcje itp. Zastanawiałem się, czy jest to dobra opcja dzięki czemu aplikacje mobilne (iOS i Android) oraz aplikacje klienckie sieci Web mogą łatwo łączyć się z serwerem zaplecza i wykonywać wiadomości. Jeśli tak, to jakie biblioteki mogę używać w systemie iOS i Android.Połączyć się z klientami z systemem iOS i Android do SockJS Backend

Na liście SockJS GitHub page znajdują się także dostępne biblioteki klienckie, ale nie ma systemu operacyjnego iOS ani Android. Zastanawiam się więc, czy SockJS jest nawet warty użycia właśnie z tego powodu.

Znalazłem, że dla biblioteki iOS Primus-Objc (GitHub page) biblioteka twierdząca, że ​​może połączyć się z native WebSockets, Socket.IO, SockJS or perhaps engine.io., jest to prawdziwe stwierdzenie? A jeśli to prawda, to co z jakością tej biblioteki?

A jeśli jest w porządku używać SockJS z tyłu, to czy możliwe jest również pokazanie przykładowego kodu dla iOS i Androida, aby móc wykonać proof of concept na urządzeniach mobilnych?

Jeśli SockJS nie jest dobrą opcją dla mnie, to byłoby lepiej niż zbudować moją aplikację do przesyłania wiadomości za pomocą Socket.io + Node.js (przy użyciu JavaScript). Wydaje mi się, że Socket.io ma wszystkie potrzebne biblioteki klienckie dla iOS (official library by Socket.IO guys) i Androida (official library by Socket.IO guys).

Inną opcją może być użycie biblioteki Netty-Socket.io i ręczne zbudowanie każdego punktu końcowego bez pomocy Spring Framework (której zamierzam użyć), ale jest małe wyzwanie, którym będę musiał się zająć, czyli bezpieczeństwo. Somebody actually already tried to do it (the same author asking question on the official Netty-Socket.IO Github page), ale wygląda na to, że nie miał jeszcze szczęścia w jego rozwiązaniu.

+0

odnieś ten blog http://www.elabs.se/blog/66-using-websockets-in-native-ios-and-android-apps –

+0

również, spójrz na https://github.com/ elabs/mobile-websocket-example –

+1

dlaczego nie po prostu użyć cometd? Ma też wsparcie dla Androida ... –

Odpowiedz

4
+1

Czy są jakieś przykłady, że SockJS i iOS rozmawiają ze sobą, a użytkownik jest uwierzytelniony? – Maksim

+0

Link # 1 jest blogiem powiązanym z kodem źródłowym w Link # 3. Po prostu robią prosty przykład "Hello World". W linku nr 2 oferują one korzystanie z SDK innej firmy. Potrzebujesz czegoś konkretnego i oficjalnego związanego z SockJS, urządzeniami mobilnymi i protokołem Stomp. – Maksim

0

SockJS może być interesujące, ponieważ zapewnia transporty non-WS . Samo korzystanie z WebSockets może nie być możliwe we wszystkich sytuacjach.

Nie

to jeden wieloplatformowy SockJs klientem OpenFL project:

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

nie testowano jak to działa, ale przynajmniej dla systemu Android jest za pomocą JavaScript od wewnątrz WebView, więc nie powinno być inaczej niż JavaScript jeden. Ponownie, nie jest jasne, jak mocno jest ona powiązana z OpenFL, ale podejście do korzystania z WebView i klienta SockJS może zostać ponownie wykorzystane.

9

Może minąć ponad rok, odkąd zadano pytanie. Ale, ponieważ uzyskuje pierwsze wyniki w Googling dla SockJS + Android. Więc zamieszczam moją odpowiedź.

Z mojego doświadczenia z ostatnim projektem, nad którym pracowałem, mogliśmy skorzystać z klienta STOMP - like the one here - aby połączyć się z backendem Spring Websocket z natywnej aplikacji dla systemu Android.

Z przeglądarki można nadal korzystać z klienta SockJS, aby uzyskać zgodność z różnymi przeglądarkami dla stron WWW z funkcją rezerwową.

Uwaga wspomnieć, że w przypadku korzystania tylko klienta Stomp połączyć się natywną websocket URL będzie coś WS: // mydomain/SockJSEndpoint/websocket, i przy użyciu klienta SockJS z przeglądarki URL będzie jak http: // mydomain/SockJSEndpoint.

+1

Dziękujemy za udostępnienie tego! –

0

Testowaliśmy je zarówno Android-client (link) została przyznana przez @Amr K. Ismail i

to iOS-client (link) są odpowiednie z wiosenno-SockJS-serwer, który ma STOMP.

Powiązane problemy