Sunwoo Kwon
Sunwoo Kwon

Reputation: 24

How can connect to SSL in JAVA with websocket and socket.io?

How can access to wss:// protocol in java ?

i use benkay / java-socket.io.client but it's not support wss protocol.

i tried use SSLEngine. but it's very hard work.

how can connect to ssl in java ?

I tried change SocketChannel by SSLEngine. but it is not worked.

ssl channel is ok. but i can't wire this original websocket part.

this is source code.

  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();
}

this point uncorret ?? i don't know .. not same the original websocket code.. may problem is this point. how can fix it ??

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)
    {

    }
}

and SSLClient is http://rapidant.tistory.com/attachment/[email protected]

key store : change JKS to BKS, not problem.

how can wrap the SocketChannel ?

(Web browser it worked.)

Upvotes: 1

Views: 3404

Answers (1)

Cameron Lowell Palmer
Cameron Lowell Palmer

Reputation: 22245

You could check out my fork of the Autobahn WebSocket Library.

Secure WebSockets based upon Autobahn

You don't want to use SSLEngine on Android because it is broken.

Upvotes: 2

Related Questions