Package org.cometd

Examples of org.cometd.Message


        {
            Iterator<Message> queueIterator = client.getQueue().iterator();
            boolean removed = false;
            while(queueIterator.hasNext())
            {
                Message m = queueIterator.next();
                if(m.get("delete")!=null)
                {
                    queueIterator.remove();
                    removed=true;
                }
            }
View Full Code Here


            super.complete();
           
            if (_dirty && _client!=null)
            {
                _dirty=false;
                Message message=_bayeux.newMessage();
               
                ByteArrayOutputStream2 bout = new ByteArrayOutputStream2();
                try
                {
                    save(bout);
                   
                    // TODO real encryption.... 
                    byte[] buf = bout.toByteArray();
                    String encoded=new String(B64Code.encode(buf));
                    message.put(Bayeux.DATA_FIELD,encoded);
                }
                catch(Exception e)
                {
                    Log.warn(e);
                }
View Full Code Here

        if (message.getChannel() == null)
            return message;
       
        if (message.getChannel().equals(Bayeux.META_HANDSHAKE) && Boolean.TRUE.equals(message.get(Bayeux.SUCCESSFUL_FIELD)))
        {
            Message rcv=message.getAssociated();

            Map<String,Object> ext=rcv.getExt(false);
            boolean clientRequestedAcks=ext != null && ext.get("ack") == Boolean.TRUE;

            if (clientRequestedAcks && from != null)
            {
                Log.info("Enabled message acknowledgement for client " + from);
View Full Code Here

                    client.responded();
                }
            }
        }

        Message metaConnectReply=null;

        // Do we need to wait for messages
        if (transport != null)
        {
            metaConnectReply=transport.getMetaConnectReply();
            if (metaConnectReply != null)
            {
                long timeout=client.getTimeout();
                if (timeout < 0)
                    timeout=_bayeux.getTimeout();

                Continuation continuation=ContinuationSupport.getContinuation(request,client);

                // Get messages or wait
                synchronized(client)
                {
                    if (timeout > 0 && !client.hasNonLazyMessages() && initial && received <= 1)
                    {
                        // save state and suspend
                        request.setAttribute(CLIENT_ATTR,client);
                        request.setAttribute(TRANSPORT_ATTR,transport);
                        client.setContinuation(continuation);
                        continuation.setObject(response);
                        continuation.suspend(timeout);
                    }

                    continuation.reset();
                }

                client.setContinuation(null);
                transport.setMetaConnectReply(null);
            }
            else if (client != null)
            {
                client.access();
            }
        }

        if (client != null)
        {
            if (metaConnectDeliveryOnly && !metaConnect)
            {
                // wake up any long poll
                client.resume();
            }
            else
            {
                List<Message> messages;
                synchronized (client)
                {
                    client.doDeliverListeners();

                    ArrayQueue<Message> clientMessages = (ArrayQueue<Message>)client.getQueue();
                    // Copy the messages to avoid synchronization
                    messages = new ArrayList<Message>(clientMessages);
                    // Empty client's queue
                    clientMessages.clear();
                }

                final int size=messages.size();
                for (int i=0; i < size; i++)
                {
                    final Message message=messages.get(i);
                    final MessageImpl mesgImpl=(message instanceof MessageImpl)?(MessageImpl)message:null;

                    // Can we short cut the message?
                    if (i == 0 && size == 1 && mesgImpl != null && _refsThreshold > 0 && metaConnectReply != null && transport instanceof JSONTransport)
                    {
View Full Code Here

        return message;
    }

    public Message sendMeta(Client from, Message message)
    {
        Message associated=message.getAssociated();
        if (associated != null)
        {
            Map<String,Object> extIn=associated.getExt(false);

            if (extIn != null)
            {
                Map<String,Object> sync=(Map<String,Object>)extIn.get("timesync");
                if (sync != null)
View Full Code Here

                        {
                            Queue<Message> clientQueue = from.getQueue();
                            clientQueue.clear();
                            for (int i=0; i < s; ++i)
                            {
                                Message m = _unackedQueue.getUnsafe(i);
                                if (m instanceof MessageImpl)
                                    ((MessageImpl)m).incRef();
                                clientQueue.add(m);
                            }
                        }
                        _lastAck=acked;

                        // We have received an ack ID, so delete the acked messages.
                        if (s > 0)
                        {
                            if (_unackedQueue.getAssociatedIdUnsafe(s - 1) <= acked)
                            {
                                // we can just clear the queue
                                for (int i=0; i < s; i++)
                                {
                                    final Message q=_unackedQueue.getUnsafe(i);
                                    if (q instanceof MessageImpl)
                                        ((MessageImpl)q).decRef();
                                }
                                _unackedQueue.clear();
                            }
                            else
                            {
                                // we need to remove elements until we see
                                // unacked
                                for (int i=0; i < s; i++)
                                {
                                    if (_unackedQueue.getAssociatedIdUnsafe(0) <= acked)
                                    {
                                        final Message q=_unackedQueue.remove();
                                        if (q instanceof MessageImpl)
                                            ((MessageImpl)q).decRef();
                                        continue;
                                    }
                                    break;
View Full Code Here

        message.put(Bayeux.CHANNEL_FIELD,toChannel);
        message.put(Bayeux.DATA_FIELD,data);
        if (id != null)
            message.put(Bayeux.ID_FIELD,id);

        Message m=_bayeux.extendSendBayeux(from,message);
        if (m != null)
            doDelivery(from,m);
        if (m instanceof MessageImpl)
            ((MessageImpl)m).decRef();
    }
View Full Code Here

        message.put(Bayeux.CHANNEL_FIELD,toChannel);
        message.put(Bayeux.DATA_FIELD,data);
        if (id != null)
            message.put(Bayeux.ID_FIELD,id);
        message.setLazy(true);
        Message m=_bayeux.extendSendBayeux(from,message);
        if (m != null)
            doDelivery(from,m);
        if (m instanceof MessageImpl)
            ((MessageImpl)m).decRef();
    }
View Full Code Here

    }

    /* ------------------------------------------------------------ */
    protected void doDelivery(Client from, final Message msg)
    {
        final Message message=_bayeux.extendSendClient(from,this,msg);
        if (message == null)
            return;

        MessageListener[] alisteners=null;
        synchronized(this)
View Full Code Here

     */
    protected void extendOut(Message message)
    {
        if (_extensions!=null)
        {
            Message m = message;
            String channelId = m.getChannel();
            if (channelId != null)
            {
                if (channelId.startsWith(Bayeux.META_SLASH))
                    for (int i=0;m!=null && i<_extensions.length;i++)
                        m=_extensions[i].sendMeta(this,m);
                else
                    for (int i=0;m!=null && i<_extensions.length;i++)
                        m=_extensions[i].send(this,m);
            }

            if (message!=m)
            {
                message.clear();
                if (m!=null)
                    for (Map.Entry<String,Object> entry:m.entrySet())
                        message.put(entry.getKey(),entry.getValue());
            }
        }
    }
View Full Code Here

TOP

Related Classes of org.cometd.Message

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.