BREW 3.1 端末でHTTPS 通信を高速化する方法
QUALCOMM 社の情報によりますと、 BREW3.1.2 以前の実装では、ISSL インターフェースが過剰にパケットを細分化するため HTTPS 通信のパフォーマンスが劣化するらしいです。(参照:関連情報)
この問題を解決するためには、 下記のように SFXHTTPConnection クラスを開いてから接続するまでの間に、 SFXHTTPConnection クラスが内部で保持する SFBWeb インスタンスを取得して、この問題が解決されている ISSL インターフェースのクラス ID「AEECLSID_SSL_101」を渡すようにします。
なお、関連情報には、 『本機能は利用例が少なく、十全な評価がされていないため、使用のリスクは御社でご判断下さい』とあります。
#include "AEESSL_WEBOPT_CLASSID.h" #include "ISSL.bid" _http.Open() SFBWebOpts webopts = SFBWebOpts::NewInstance(&error); WebOpt opt[2]; opt[0].nId = WEBOPT_SSL_CLASSID; opt[0].pVal = (VoidPtr)AEECLSID_SSL_101; opt[1].nId = WEBOPT_END; opt[1].pVal = null; webopts->AddOpt(opt); SFBWebSmp web = _http.GetSFBWeb(); web->AddOpt(opt); _http.Connect(url, XALLBACK_INTERNAL(OnConnect));
※ 接続時間が短縮されたもののフェッチに時間がかかる場合は、ストリームリーダーのバッファサイズを小さくしてみてください。たとえば、4096バイト(デフォルト)を2048バイトにすることで高速化された例があります。