Package org.cometd.bayeux.client

Examples of org.cometd.bayeux.client.ClientSessionChannel


        final CountDownLatch messageLatch = new CountDownLatch(1);
        client.batch(new Runnable()
        {
            public void run()
            {
                ClientSessionChannel channel = client.getChannel("/foobar");
                channel.subscribe(new ClientSessionChannel.MessageListener()
                {
                    public void onMessage(ClientSessionChannel channel, Message message)
                    {
                        messageLatch.countDown();
                    }
                });

                // Allow handshake to complete so that sendBatch() is triggered
                handshakeLatch.countDown();

                try
                {
                    // Be sure messages are not sent (we're still batching)
                    assertFalse(sendLatch.await(1, TimeUnit.SECONDS));
                }
                catch (InterruptedException x)
                {
                    // Ignored
                }

                channel.publish("DATA");
            }
        });

        assertTrue(sendLatch.await(5, TimeUnit.SECONDS));
        assertTrue(messageLatch.await(5, TimeUnit.SECONDS));
View Full Code Here


        session0.getChannel("/foo/bar").unsubscribe(listener);
        Assert.assertEquals(3,_bayeux.getChannel("/foo/bar").getSubscribers().size());
        session0.getChannel("/foo/bar").unsubscribe(listener);
        Assert.assertEquals(2,_bayeux.getChannel("/foo/bar").getSubscribers().size());

        ClientSessionChannel foobar0=session0.getChannel("/foo/bar");
        foobar0.subscribe(listener);
        foobar0.subscribe(listener);

        ClientSessionChannel foostar0=session0.getChannel("/foo/*");
        foostar0.subscribe(listener);

        Assert.assertEquals(3,_bayeux.getChannel("/foo/bar").getSubscribers().size());
        Assert.assertEquals(session0,foobar0.getSession());
        Assert.assertEquals("/foo/bar",foobar0.getId());
        Assert.assertEquals(false,foobar0.isDeepWild());
        Assert.assertEquals(false,foobar0.isWild());
        Assert.assertEquals(false,foobar0.isMeta());
        Assert.assertEquals(false,foobar0.isService());

        foobar0.publish("hello");

        Assert.assertEquals(session0.getId(),events.poll());
        Assert.assertEquals("hello",events.poll());
        Assert.assertEquals(session0.getId(),events.poll());
        Assert.assertEquals("hello",events.poll());
        Assert.assertEquals(session0.getId(),events.poll());
        Assert.assertEquals("hello",events.poll());
        Assert.assertEquals(session1.getId(),events.poll());
        Assert.assertEquals("hello",events.poll());
        Assert.assertEquals(session2.getId(),events.poll());
        Assert.assertEquals("hello",events.poll());
        foostar0.unsubscribe(listener);

        session1.batch(new Runnable()
        {
            public void run()
            {
                ClientSessionChannel foobar1=session1.getChannel("/foo/bar");
                foobar1.publish("part1");
                Assert.assertEquals(null,events.poll());
                foobar1.publish("part2");
            }
        });

        Assert.assertEquals(session1.getId(),events.poll());
        Assert.assertEquals("part1",events.poll());
View Full Code Here

        BayeuxClient client = newBayeuxClient();
        client.handshake();
        assertTrue(client.waitFor(5000, BayeuxClient.State.CONNECTED));

        final AtomicReference<CountDownLatch> latch = new AtomicReference<>(new CountDownLatch(1));
        ClientSessionChannel channel = client.getChannel("/test");
        channel.publish(new HashMap(), new ClientSessionChannel.MessageListener()
        {
            public void onMessage(ClientSessionChannel channel, Message message)
            {
                Assert.assertTrue(message.isSuccessful());
                latch.get().countDown();
            }
        });

        Assert.assertTrue(latch.get().await(5, TimeUnit.SECONDS));

        // Publish again without callback, must not trigger the previous callback
        latch.set(new CountDownLatch(1));
        channel.publish(new HashMap());

        Assert.assertFalse(latch.get().await(1, TimeUnit.SECONDS));

        disconnectBayeuxClient(client);
    }
View Full Code Here

        BayeuxClient client = newBayeuxClient();
        client.handshake();
        assertTrue(client.waitFor(5000, BayeuxClient.State.CONNECTED));

        final AtomicReference<CountDownLatch> latch = new AtomicReference<>(new CountDownLatch(1));
        ClientSessionChannel channel = client.getChannel("/test");
        channel.publish(new HashMap(), new ClientSessionChannel.MessageListener()
        {
            public void onMessage(ClientSessionChannel channel, Message message)
            {
                Assert.assertFalse(message.isSuccessful());
                latch.get().countDown();
View Full Code Here

        BayeuxClient client = newBayeuxClient();
        client.handshake();

        final AtomicReference<CountDownLatch> latch = new AtomicReference<>(new CountDownLatch(1));
        ClientSessionChannel channel = client.getChannel("/test");
        channel.publish(new HashMap(), new ClientSessionChannel.MessageListener()
        {
            public void onMessage(ClientSessionChannel channel, Message message)
            {
                Assert.assertFalse(message.isSuccessful());
                latch.get().countDown();
View Full Code Here

        assertTrue(client.waitFor(5000, BayeuxClient.State.CONNECTED));

        server.stop();

        final AtomicReference<CountDownLatch> latch = new AtomicReference<CountDownLatch>(new CountDownLatch(1));
        ClientSessionChannel channel = client.getChannel("/test");
        channel.publish(new HashMap(), new ClientSessionChannel.MessageListener()
        {
            public void onMessage(ClientSessionChannel channel, Message message)
            {
                Assert.assertFalse(message.isSuccessful());
                latch.get().countDown();
View Full Code Here

        clientJSONContext.set(null, null);
        Field serverJSONContext = ServerMessageImpl.class.getDeclaredField("_jsonContext");
        serverJSONContext.setAccessible(true);
        serverJSONContext.set(null, null);

        final ClientSessionChannel channel = client.getChannel(channelName);
        final CountDownLatch clientLatch = new CountDownLatch(3);
        client.batch(new Runnable()
        {
            public void run()
            {
                channel.subscribe(new ClientSessionChannel.MessageListener()
                {
                    private boolean republishSeen;
                    private boolean deliverSeen;

                    public void onMessage(ClientSessionChannel channel, Message message)
                    {
                        System.err.println("message = " + message);
                        Map<String, Object> data = message.getDataAsMap();
                        Assert.assertTrue(data.containsKey("publish"));
                        republishSeen |= data.containsKey("republish");
                        deliverSeen |= data.containsKey("deliver");
                        if (clientLatch.getCount() == 1 && !republishSeen && !deliverSeen)
                            Assert.fail();
                        clientLatch.countDown();
                    }
                });
                Map<String, Object> data = new HashMap<>();
                data.put("publish", true);
                channel.publish(data);
            }
        });

        Assert.assertTrue(localLatch.await(5, TimeUnit.SECONDS));
        Assert.assertTrue(clientLatch.await(5, TimeUnit.SECONDS));
View Full Code Here

            message.put("user", client.hashCode());
            message.put("chat", chat);
            // Mandatory fields to record latencies
            message.put(START_FIELD, System.nanoTime());
            message.put(ID_FIELD, String.valueOf(ids.incrementAndGet()));
            ClientSessionChannel clientChannel = client.getChannel(getChannelId(channel + "/" + room));
            clientChannel.publish(message);
            clientChannel.release();
            expected += clientsPerRoom.get();
        }
        client.endBatch();

        if (batchPause > 0)
View Full Code Here

        }

        private void notifyServer(String channelName) throws InterruptedException
        {
            final CountDownLatch latch = new CountDownLatch(1);
            ClientSessionChannel channel = getChannel(channelName);
            channel.publish(new HashMap<String, Object>(1), new ClientSessionChannel.MessageListener()
            {
                public void onMessage(ClientSessionChannel channel, Message message)
                {
                    latch.countDown();
                }
View Full Code Here

                consumer.processMessage(channel, message);
            }

        };

        final ClientSessionChannel clientChannel = client.getChannel(channelName);

        // listener for subscribe error
        final CountDownLatch latch = new CountDownLatch(1);
        final String[] subscribeError = {null};
        final ClientSessionChannel.MessageListener subscriptionListener = new ClientSessionChannel.MessageListener() {
            public void onMessage(ClientSessionChannel channel, Message message) {
                LOG.debug("[CHANNEL:META_SUBSCRIBE]: {}", message);
                final String subscribedChannelName = message.get(SUBSCRIPTION_FIELD).toString();
                if (channelName.equals(subscribedChannelName)) {

                    if (!message.isSuccessful()) {
                        String error = (String) message.get(ERROR_FIELD);
                        if (error != null) {
                            subscribeError[0] = error;
                        }
                    } else {
                        // remember subscription
                        LOG.info("Subscribed to channel {}", subscribedChannelName);
                    }
                    latch.countDown();
                }
            }
        };
        client.getChannel(META_SUBSCRIBE).addListener(subscriptionListener);

        try {
            clientChannel.subscribe(listener);

            // confirm that a subscription was created
            try {
                if (!latch.await(CHANNEL_TIMEOUT, SECONDS)) {
                    String message;
View Full Code Here

TOP

Related Classes of org.cometd.bayeux.client.ClientSessionChannel

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.