package org.java_websocket.client; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.nio.channels.ByteChannel; import org.java_websocket.AbstractWrappedByteChannel; public abstract class AbstractClientProxyChannel extends AbstractWrappedByteChannel { protected final ByteBuffer proxyHandshake; /** * @param towrap * The channel to the proxy server **/ public AbstractClientProxyChannel(ByteChannel towrap) { super(towrap); try { proxyHandshake = ByteBuffer .wrap(buildHandShake().getBytes("ASCII")); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } } public abstract String buildHandShake(); @Override public int write(ByteBuffer src) throws IOException { if (!proxyHandshake.hasRemaining()) { return super.write(src); } else { return super.write(proxyHandshake); } } }