Search in sources :

Example 11 with WebSocketPublisher

use of org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher in project kontraktor by RuedigerMoeller.

the class RemotingTest method runWS.

public void runWS(Coding coding) throws InterruptedException {
    checkSequenceErrors = true;
    RemotingTestService service = Actors.AsActor(RemotingTestService.class, Q_SIZE);
    ActorServer publisher = new WebSocketPublisher(service, "localhost", "/ws", 8081).coding(coding).publish().await();
    RemotingTestService client = (RemotingTestService) new WebSocketConnectable(RemotingTestService.class, "ws://localhost:8081/ws").coding(coding).connect().await(9999999);
    CountDownLatch latch = new CountDownLatch(1);
    runWithClient(client, latch);
    latch.await();
    // wait for outstanding callbacks
    Thread.sleep(2000);
    publisher.close();
}
Also used : ActorServer(org.nustaq.kontraktor.remoting.base.ActorServer) WebSocketPublisher(org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher) CountDownLatch(java.util.concurrent.CountDownLatch) WebSocketConnectable(org.nustaq.kontraktor.remoting.websockets.WebSocketConnectable)

Example 12 with WebSocketPublisher

use of org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher in project kontraktor by RuedigerMoeller.

the class BldFourK method websocket.

public WebSocketPublisher websocket(String urlPath, Actor facade, boolean useStringMessages) {
    WebSocketPublisher wp = new WebSocketPublisher(this, facade, hostName, urlPath, port);
    wp.sendStringMessages(useStringMessages);
    items.add(wp);
    return wp;
}
Also used : WebSocketPublisher(org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher)

Example 13 with WebSocketPublisher

use of org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher in project kontraktor by RuedigerMoeller.

the class BldFourK method build.

public BldFourK build() {
    Http4K http4K = Http4K.get();
    // fixme https
    http4K.getServer(getPort(), getHostName(), context);
    getItems().forEach(item -> {
        if (item instanceof HttpPublisher) {
            http4K.publish((HttpPublisher) item);
        } else if (item instanceof WebSocketPublisher) {
            http4K.publish((WebSocketPublisher) item);
        } else if (item instanceof BldDirRoot) {
            BldDirRoot dr = (BldDirRoot) item;
            if (getHttpCacheEnabled()) {
                CachedFileResourceManager resMan = new CachedFileResourceManager(getHttpCacheEnabled(), new File(dr.getDir()), 100);
                http4K.publishFileSystem(getHostName(), dr.getUrlPath(), getPort(), resMan);
            } else {
                http4K.publishFileSystem(getHostName(), dr.getUrlPath(), getPort(), new File(dr.getDir()));
            }
        } else if (item instanceof BldHttpHandler) {
            BldHttpHandler dr = (BldHttpHandler) item;
            http4K.publishHandler(getHostName(), dr.getUrlPath(), getPort(), dr.getHandler());
        } else if (item instanceof BldResPath) {
            BldResPath dr = (BldResPath) item;
            DynamicResourceManager drm = new DynamicResourceManager(!dr.isCacheAggregates(), dr.getUrlPath(), dr.isMinify(), dr.getBaseDir(), dr.getResourcePath());
            drm.cachedIndexDir(dr.getProductionBuildDir());
            HtmlImportShim shim = new HtmlImportShim(dr.getUrlPath());
            drm.setJSPostProcessors(dr.getProdModePostProcessors());
            shim.setJSPostProcessors(dr.getProdModePostProcessors());
            shim.minify(dr.isMinify()).inline(dr.isInline()).stripComments(dr.isStripComments());
            drm.setImportShim(shim);
            drm.setTranspilerMap(dr.getTranspilers());
            http4K.publishResourcePath(getHostName(), dr.getUrlPath(), getPort(), drm, dr.isCompress(), dr.getHandlerInterceptor());
        } else {
            System.out.println("unexpected item " + item);
        }
    });
    return this;
}
Also used : HttpPublisher(org.nustaq.kontraktor.remoting.http.undertow.HttpPublisher) WebSocketPublisher(org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher) Http4K(org.nustaq.kontraktor.remoting.http.undertow.Http4K) File(java.io.File)

Example 14 with WebSocketPublisher

use of org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher in project kontraktor by RuedigerMoeller.

the class RemotingTest method testWSMany.

@Test
public void testWSMany() throws Exception {
    checkSequenceErrors = false;
    RemotingTestService service = Actors.AsActor(RemotingTestService.class, Q_SIZE);
    ActorServer publisher = new WebSocketPublisher(service, "localhost", "/ws", 8081).publish().await();
    RemotingTestService client = (RemotingTestService) new WebSocketConnectable(RemotingTestService.class, "ws://localhost:8081/ws").connect().await(9999999);
    ExecutorService exec = Executors.newCachedThreadPool();
    CountDownLatch latch = new CountDownLatch(10);
    for (int i = 0; i < 10; i++) {
        exec.execute(() -> {
            try {
                runWithClient(client, latch);
            } catch (Exception e) {
                e.printStackTrace();
            }
        });
    }
    latch.await();
    // wait for outstanding callbacks
    Thread.sleep(2000);
    publisher.close();
}
Also used : ActorServer(org.nustaq.kontraktor.remoting.base.ActorServer) WebSocketPublisher(org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher) ExecutorService(java.util.concurrent.ExecutorService) CountDownLatch(java.util.concurrent.CountDownLatch) WebSocketConnectable(org.nustaq.kontraktor.remoting.websockets.WebSocketConnectable) Test(org.junit.Test)

Example 15 with WebSocketPublisher

use of org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher in project kontraktor by RuedigerMoeller.

the class RemotingTest method test.

@Test
public void test() {
    RemotingTA serv = Actors.AsActor(RemotingTA.class);
    // websocket
    WebSocketPublisher pub = new WebSocketPublisher().facade(serv).hostName("0.0.0.0").urlPath("/websocket").port(7777).serType(SerializerType.FSTSer);
    pub.publish().await();
    WebSocketConnectable con = new WebSocketConnectable().actorClass(RemotingTA.class).url("ws://localhost:7777/websocket");
    fromRemote(con);
    // TCP NIO
    new TCPNIOPublisher(serv, 7778).publish().await();
    fromRemote(new TCPConnectable(RemotingTA.class, "localhost", 7778));
    // TCP Sync
    new TCPPublisher(serv, 7780).publish().await();
    fromRemote(new TCPConnectable(RemotingTA.class, "localhost", 7780));
    // Http-Longpoll
    new HttpPublisher(serv, "0.0.0.0", "/httpapi", 7779).publish().await();
    fromRemote(new HttpConnectable(RemotingTA.class, "http://localhost:7779/httpapi"));
}
Also used : HttpConnectable(org.nustaq.kontraktor.remoting.http.HttpConnectable) TCPConnectable(org.nustaq.kontraktor.remoting.tcp.TCPConnectable) WebSocketPublisher(org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher) HttpPublisher(org.nustaq.kontraktor.remoting.http.undertow.HttpPublisher) TCPPublisher(org.nustaq.kontraktor.remoting.tcp.TCPPublisher) TCPNIOPublisher(org.nustaq.kontraktor.remoting.tcp.TCPNIOPublisher) WebSocketConnectable(org.nustaq.kontraktor.remoting.websockets.WebSocketConnectable) Test(org.junit.Test)

Aggregations

WebSocketPublisher (org.nustaq.kontraktor.remoting.http.undertow.WebSocketPublisher)15 WebSocketConnectable (org.nustaq.kontraktor.remoting.websockets.WebSocketConnectable)10 Test (org.junit.Test)9 CountDownLatch (java.util.concurrent.CountDownLatch)8 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)6 RateMeasure (org.nustaq.kontraktor.util.RateMeasure)6 Assert (org.junit.Assert)5 Actors (org.nustaq.kontraktor.Actors)5 KxPublisher (org.nustaq.kontraktor.reactivestreams.KxPublisher)5 KxReactiveStreams (org.nustaq.kontraktor.reactivestreams.KxReactiveStreams)5 Publisher (org.reactivestreams.Publisher)5 RxReactiveStreams (rx.RxReactiveStreams)5 ActorSystem (akka.actor.ActorSystem)4 ActorMaterializer (akka.stream.ActorMaterializer)4 ActorMaterializerSettings (akka.stream.ActorMaterializerSettings)4 Materializer (akka.stream.Materializer)4 PublisherSink (akka.stream.impl.PublisherSink)4 SubscriberSink (akka.stream.impl.SubscriberSink)4 Sink (akka.stream.javadsl.Sink)4 Source (akka.stream.javadsl.Source)4