我一直在尝试在iOS,Java桌面和Android上重用SSL会话。 iOS似乎尝试重用SSL会话(但不是所有时间)。只要在创建SSLEngine时传递主机名/端口,Java似乎总是重用会话。
当我到Android时,我遇到了一些问题。我用来测试Java SSL会话重用的代码(创建连接,发送几条消息,丢弃连接并等待一秒,重复)在Froyo上完全无法正常工作,在Gingerbread模拟器中工作但没有'重用会话。
然后我更深入地了解了Android代码,我发现有一种使用AndroidHttpClient使用的SSLSessionCache / SSLCertificateSocketFactory存储SSL会话的替代方法。所以我设置了一个测试来使用AndroidHttpClient,它通过多个连接向apache服务器发出多个请求(我知道它支持SSL会话重用),并且它仍然没有在Froyo或Gingerbread中重用会话。
如果有人能够使用此功能并且可以显示一些示例Android客户端代码,我将不胜感激。我正在考虑为Android创建一个错误报告,但我只是想确保我不会遗漏一些明显的东西。