如何使用websocket和socket.io连接JAVA中的SSL



如何访问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,因为它坏了。

相关内容

  • 没有找到相关文章

最新更新