1

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

    }
}

SSLClient はhttp://rapidant.tistory.com/attachment/cfile25.uf@121346414D45B0960BD01B.zipです。

key store : JKS を BKS に変更します。問題ありません。

SocketChannel をどのようにラップできますか?

(Webブラウザは動作しました。)

4

1 に答える 1

2

Autobahn WebSocket Library の私のフォークを確認できます。

Autobahn に基づく安全な WebSocket

壊れているため、Android で SSLEngine を使用したくありません。

于 2012-11-06T14:32:41.147 に答える