All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.rx.net.http.tunnel.Client Maven / Gradle / Ivy

There is a newer version: 3.0.0
Show newest version
//package org.rx.net.http.tunnel;
//
//import io.netty.buffer.ByteBuf;
//import io.netty.channel.Channel;
//import lombok.RequiredArgsConstructor;
//import org.rx.core.Tasks;
//import org.rx.io.Bytes;
//import org.rx.io.IOStream;
//import org.rx.net.http.HttpClient;
//import org.rx.net.socks.SocksProxyServer;
//
//import java.util.Collections;
//import java.util.Map;
//import java.util.concurrent.ConcurrentHashMap;
//
//public class Client {
//    @RequiredArgsConstructor
//    class SocksContext {
//        private final Channel inboundChannel;
//        private final Map outboundForms = new ConcurrentHashMap<>();
//        private final HttpClient outboundOfferClient = new HttpClient(timeWaitSeconds * 2);
//        private final HttpClient outboundPollClient = new HttpClient(timeWaitSeconds * 2);
//
//        public SocksContext(String appName, String inboundSocksId, String remoteEndpoint, Channel inboundChannel) {
//            this.inboundChannel = inboundChannel;
//            outboundForms.put("appName", appName);
//            outboundForms.put("socksId", inboundSocksId);
//            outboundForms.put("endpoint", remoteEndpoint);
//            Tasks.schedulePeriod(this::backendPoll, 100);
//        }
//
//        public void backendOffer(IOStream binary) {
//            outboundOfferClient.post(String.format("%s/apix/directOffer", serverUrl),
//                    outboundForms, Collections.singletonMap("binary", binary)).toString();
//        }
//
//        protected void backendPoll() {
//            outboundPollClient.post(String.format("%s/apix/directPoll", serverUrl), outboundForms).handle(in -> {
//                ByteBuf buf = Bytes.copyInputStream(in);
//                try {
//                    inboundChannel.writeAndFlush(buf);
//                } finally {
//                    buf.release();
//                }
//            });
//        }
//    }
//
//    private int timeWaitSeconds = 20;
//    private final String serverUrl;
//    private final SocksProxyServer proxyServer;
//    private final Map> holds = new ConcurrentHashMap<>();
//
//    public Client(String serverUrl, int listenPort) {
//        this.serverUrl = serverUrl;
////        SocksConfig config = new SocksConfig();
////        config.setListenPort(listenPort);
////        config.setUpstreamSupplier(null);
////        config.setUpstreamPreReconnect(null);
////        proxyServer = new SocksProxyServer(config);
//        proxyServer = null;
//    }
////
////    public void xxxx() {
////
////    }
//}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy