javaでwss://プロトコルにアクセスするにはどうすればよいですか?JAVAでwebsocketとsocket.ioでSSLに接続するにはどうすればいいですか?
私はbenkay/java-socket.io.client を使用していますが、wssプロトコルをサポートしていません。
私はSSLEngineを試してみました。それは非常に難しい作業です。
どのようにしてjavaのsslに接続できますか?
SSLEngineでSocketChannelを変更しようとしました。しかしそれは働かない。
sslチャネルはokです。しかし、私はこのオリジナルの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/[email protected]
キーストアです:BKSに変更JKS、問題ありません。
どのようにSocketChannelをラップできますか?
(Webブラウザ、それが働いた。)
SocketChannelをSSLSocketChannelに変更したいと思います。 しかしそれは働かない。ハンドシェイクまで –
多分selector.select()= 0問題。 –