如何访问java中的wss://协议?
我使用benkay/java-socket.io.client但它不支持wss协议。
我试着用SSLEngine。但这是一项非常艰苦的工作。
如何在java中连接ssl?
我尝试通过SSLEngine更改SocketChannel。但它不起作用。
ssl通道可以。但我无法连接这个原始的websocket部分。
这是源代码。
client = SocketChannel.open(remote);
client.configureBlocking(false);
//client.connect(remote);
selector = Selector.open();
this.conn = new WebSocket(client, new LinkedBlockingQueue<ByteBuffer>(), this);
client.register(selector, SelectionKey.OP_READ);
try {
sslClient = new SSLClient(keyStore, storepass.toCharArray(), client);
sslClient.beginHandShake();
startClient()
} catch (Exception e) {
e.printStackTrace();
}
这一点不正确??我不知道。。与原来的websocket代码不同。。也许问题就出在这一点上。如何修复??
public void startClient()
{
try
{
while(true)
{
if(selector.select() <= 0)
{
continue;
}
Iterator<SelectionKey> it = selector.selectedKeys().iterator();
while(it.hasNext())
{
SelectionKey key = (SelectionKey)it.next();
Log.e("key","key");
if(key.isReadable())
{
read(key);
}
it.remove();
}
}
}
catch(Exception e)
{
}
}
SSLClienthttp://rapidant.tistory.com/attachment/cfile25.uf@1213466414D45B0960BD01B.zip
密钥存储:将JKS更改为BKS,没有问题。
如何包装SocketChannel?
(Web浏览器工作正常。)
您可以查看我的Autobahn WebSocket库分支。
基于高速公路的安全WebSockets
你不想在安卓系统上使用SSLEngine,因为它坏了。