私はSockJS + STOMPプロトコルを使用する Spring WebSockets を使用してWebSocketメッセージングバックエンドを開発しています。プレーンWebSocketsを使用しない理由は、SockJSがSpring WebSocketsで提供するセキュリティ統合と、ルーム、サブスクリプションなどのSockJSの他のきちんとした機能を活用する必要があるためです。モバイル(iOSおよびAndroid)およびWebクライアントアプリがバックエンドサーバーに簡単に接続し、メッセージングを実行できるようにします。はいの場合、iOSおよびAndroidで使用できるライブラリはどれですか。
SockJS GitHubページ では、利用可能なクライアントライブラリもリストされていますが、iOSやAndroidはリストされていません。だから、それだけでSockJSを使用する価値があるのかと思います。
IOSクライアントの場合 Primus-Objc ( GitHub page )ライブラリがnative WebSockets, Socket.IO, SockJS or perhaps engine.io.
に接続できると主張しているのは本当のステートメントですか?そしてそれが本当ならイベント、そのライブラリの品質はどうですか?
また、背面でSockJSを使用しても問題がない場合は、iOSおよびAndroidのサンプルコードを表示して、モバイルデバイスで概念実証を実行できるようにすることもできますか?
SockJSが私にとって良いオプションではない場合、Socket.io + Node.js(JavaScriptを使用)でメッセージングアプリを構築するよりも良いでしょう。 Socket.ioには、iOS( Socket.IO guysによる公式ライブラリ )とAndroid( Socketによる公式ライブラリ。 IOみんな )。
別のオプションは Netty-Socket.io ライブラリを使用して、Spring Framework(使用を検討中)の助けなしに各エンドポイントを手動で構築することですが、私がしなければならない小さな課題がありますタックル、それはセキュリティです。 誰かが実際にそれを試みました ( 同じ著者が公式のNetty-Socket.IO Githubページで質問をしている )しかし、彼は解決するのに運がなかったようですそれはまだ。
質問されてから1年以上経過している可能性があります。ただし、SockJS + AndroidのGooglingの場合は、最初の結果が得られるためです。だから、私は私の答えを投稿しています。
私が取り組んだ最近のプロジェクトでの私の経験から、STOMPクライアントを使用することができました- ここにあるものと同様 -ネイティブからSpring Websocketバックエンドに接続するAndroid=アプリ。
また、ブラウザーからは、SockJSクライアントを使用して、フォールバックを備えたWebSocketへのブラウザー間の互換性を取得できます。
STOMPクライアントのみを使用してネイティブWebソケットに接続する場合、URLはws:// mydomain/SockJSEndpoint /websocket、およびブラウザからSockJSクライアントを使用する場合、URLはhttpのようになります。 // mydomain/SockJSEndpoint。
SockJSは非wsトランスポートを提供するため、興味深いかもしれません。 WebSocketを使用するだけでは、すべての状況で使用できるとは限りません。
OpenFLプロジェクト のクロスプラットフォームSockJsクライアントが1つあります。
https://github.com/jeremyfa/openfl-sockjs
どれだけうまく機能するかはテストされていませんが、少なくともAndroidはWebView内からJavaScriptを使用しているため、JavaScriptと同じである必要があります。繰り返しますが、OpenFLとどの程度緊密に結合されているかは明らかではありません。しかし、WebViewとストックSockJSクライアントを使用するアプローチはおそらく再利用できます。