Я разрабатываю серверную часть обмена сообщениями WebSocket, используя Spring WebSockets, который использует SockJS + STOMP протокол. Причина, по которой я не использую обычные веб-сокеты, заключается в том, что мне нужно будет использовать интеграцию безопасности, которую SockJS предоставляет в Spring WebSockets, а также другие удобные функции из SockJS, такие как комнаты, подписки и т. д. Мне было интересно, хороший ли это вариант для использования так что мобильные (iOS и Android) и веб-клиентские приложения могут легко подключаться к внутреннему серверу и выполнять обмен сообщениями. Если да, то какие библиотеки я могу использовать для iOS и Android.
На странице SockJS GitHub они также перечисляют доступные клиентские библиотеки, но не для iOS и Android. Итак, мне интересно, стоит ли использовать SockJS только из-за этого.
Я обнаружил, что для клиента iOS Primus-Objc (страница GitHub), утверждающая, что они могут подключаться к native WebSockets, Socket.IO, SockJS or perhaps engine.io.
это верное утверждение? И если это правда, как насчет качества этой библиотеки?
И если можно использовать SockJS на задней панели, можно ли также показать пример кода для iOS и Android, чтобы я мог выполнить проверку концепции на мобильных устройствах?
Если SockJS не подходит для меня, то было бы лучше, чем создать мое приложение для обмена сообщениями с помощью Socket.io + Node.js (с использованием JavaScript). У Socket.io, как мне кажется, есть все необходимые клиентские библиотеки для iOS (официальная библиотека от Socket.IO ребята) и Android (официальная библиотека от ребят Socket.IO а>).
Другим вариантом может быть использование библиотеки Netty-Socket.io и создание каждой конечной точки вручную без какой-либо помощи со стороны Spring Framework (которую я собираюсь использовать), но есть небольшая проблема, которую мне придется решить, а именно безопасность. Кто-то уже пытался это сделать (тот же автор задает вопрос на официальной странице Netty-Socket.IO на Github), но, похоже, ему не повезло в решить это еще.