1

私の Android アプリの Webkit コンテナーにある JavaScript コードがあります。このコードは、WebSocket を使用してサーバーと通信します。iOS などの他のプラットフォームでは同じ JS コードが機能しますが、Android 2.3 では機能しません。Android の Webkit は WebSockets をサポートしていないことをどこかで読みました。サポートは Jelly Bean 以降でのみ行われます。

これを考慮して、ネイティブ レイヤー (Java) からプレーン ソケットを使用するラッパーを提供する必要があります。ソケットについて少し知っている限りでは、open()、send()、receive() などの通常の API をサポートするのは簡単に思えます。

ラッパーコードから提供する必要がある、WebSocket プロトコルが必要とすることを他に知っておく必要があることはありますか? 結局のところ、サーバーは、ネイティブ ソケットではなく、WebSocket であるかのようにクライアント (私の Android アプリ) と通信します。

考慮すべきいくつかの注意事項: a) サードパーティのライブラリは使用できません。社内で開発する必要があります。b) 転送されるバイナリ データはありません。テキストのみ。

ありがとう、
ラジャス

4

1 に答える 1

1

Websockets are not raw sockets, they require an initial handshake then simple per-message framing. See the protocol spec for details. The sections on handshake and data framing will be most relevant.

I know you said you can't use third party libraries but be aware that projects like Java-Websocket might be interesting to you. It's liberally licensed so suitable for inclusion in any closed source app. Or you might find it useful as a reference while debugging your own code.

于 2012-09-14T08:30:05.133 に答える