Examples of CoapMessage


Examples of org.apache.mina.coap.CoapMessage

        @Override
        public void messageReceived(IoSession session, Object message) {

            System.err.println("rcvd : " + message);
            CoapMessage msg = (CoapMessage) message;
            if (msg.getCode() == CoapCode.GET.getCode() || msg.getCode() == CoapCode.POST.getCode()
                    || msg.getCode() == CoapCode.PUT.getCode() || msg.getCode() == CoapCode.DELETE.getCode()) {
                CoapMessage resp = reg.respond(msg, session);
                session.write(resp);
            }
        }
View Full Code Here

Examples of org.apache.mina.coap.CoapMessage

            @Override
            public void messageReceived(IoSession session, Object message) {
                System.err.println("rcv : " + message);

                CoapMessage resp = reg.respond((CoapMessage) message, session);
                System.err.println("resp : " + resp);
                session.write(resp);
                count++;
                if (count >= 100_000) {
                    System.err.println("time for 100k msg : " + (System.currentTimeMillis() - start));
View Full Code Here

Examples of org.apache.mina.coap.CoapMessage

     */
    @Override
    public void messageReceived(IoSession session, Object in, ReadFilterChainController controller) {
        LOGGER.debug("Processing a MESSAGE_RECEIVED for session {}", session);

        CoapMessage coapMsg = (CoapMessage) in;
        String transmissionId = CoapTransmission.uniqueId(session, coapMsg);

        switch (coapMsg.getType()) {
        case NON_CONFIRMABLE:
            // non confirmable message, let's move to the next filter
            super.messageReceived(session, coapMsg, controller);
            break;

        case CONFIRMABLE:
            // check if this is a duplicate of a message already processed
            CoapMessage ack = processed.get(transmissionId);

            if (ack != null) {
                // stop the filter chain and send again the ack since it was
                // probably lost
                LOGGER.debug("Duplicated messages detected with ID {} in session {}", coapMsg.requestId(), session);
View Full Code Here

Examples of org.apache.mina.coap.CoapMessage

     */
    @Override
    public void messageWriting(final IoSession session, final WriteRequest message, WriteFilterChainController controller) {
        LOGGER.debug("Processing a MESSAGE_WRITING for session {}", session);

        final CoapMessage coapMsg = (CoapMessage) message.getMessage();
        final String transmissionId = CoapTransmission.uniqueId(session, coapMsg);

        switch (coapMsg.getType()) {

        case NON_CONFIRMABLE:
            controller.callWriteNextFilter(message);
            break;
        case RESET:
        case ACK:
            // let's keep track of the message to avoid processing it again in
            // case of duplicate copy.
            processed.put(transmissionId, coapMsg);

            controller.callWriteNextFilter(message);
            break;

        case CONFIRMABLE:
            // initialize a transmission if this is not a retry
            CoapTransmission t = inFlight.get(transmissionId);
            if (t == null) {
                t = new CoapTransmission(session, coapMsg);
                inFlight.put(t.getId(), t);
            }

            // schedule a retry
            ScheduledFuture<?> future = retryExecutor.schedule(new Runnable() {

                @Override
                public void run() {
                    CoapTransmission t = inFlight.get(transmissionId);

                    // send again the message if the maximum number of attempts
                    // is not reached
                    if (t != null && t.timeout()) {
                        LOGGER.debug("Retry for message with ID {}", coapMsg.requestId());
                        session.write(coapMsg);
                    } else {
                        // abort transmission
                        LOGGER.debug("No more retry for message with ID {}", coapMsg.requestId());
                    }
                }
            }, t.getNextTimeout(), TimeUnit.MILLISECONDS);

            t.setRetryFuture(future);
View Full Code Here

Examples of org.apache.mina.coap.CoapMessage

    private IoSession session = mock(IoSession.class);

    @Test
    public void non_confirmable_message_received() {
        CoapMessage in = new CoapMessage(1, MessageType.NON_CONFIRMABLE, 1, 1234, "token".getBytes(), null,
                "payload".getBytes());

        filter.messageReceived(session, in, readController);

        // verify
View Full Code Here

Examples of org.apache.mina.coap.CoapMessage

        Mockito.verifyNoMoreInteractions(readController);
    }

    @Test
    public void first_time_confirmable_message_received() {
        CoapMessage in = new CoapMessage(1, MessageType.CONFIRMABLE, 1, 1234, "token".getBytes(), null,
                "payload".getBytes());

        filter.messageReceived(session, in, readController);

        // verify
View Full Code Here

Examples of org.apache.mina.coap.CoapMessage

        Mockito.verifyNoMoreInteractions(readController);
    }

    @Test
    public void duplicate_confirmable_processed_once() {
        CoapMessage in = new CoapMessage(1, MessageType.CONFIRMABLE, 1, 1234, "token".getBytes(), null,
                "payload".getBytes());

        // first confirmable
        filter.messageReceived(session, in, readController);

        // ack
        CoapMessage ack = new CoapMessage(1, MessageType.ACK, 1, 1234, null, null, null);
        filter.messageWriting(session, new DefaultWriteRequest(ack), writeController);

        // duplicate confirmable
        filter.messageReceived(session, in, readController);
View Full Code Here

Examples of org.apache.mina.coap.CoapMessage

        Mockito.verifyNoMoreInteractions(readController);
    }

    @Test
    public void retry_confirmable_message() throws InterruptedException {
        CoapMessage msg = new CoapMessage(1, MessageType.CONFIRMABLE, 1, 1234, null, null, null);

        WriteRequest writeRequest = new DefaultWriteRequest(msg);
        filter.messageWriting(session, writeRequest, writeController);

        // verify
View Full Code Here

Examples of org.apache.mina.coap.CoapMessage

    @Test
    public void no_retry_if_ack_received() throws InterruptedException {

        // confirmable
        CoapMessage msg = new CoapMessage(1, MessageType.CONFIRMABLE, 1, 1234, null, null, null);
        WriteRequest writeRequest = new DefaultWriteRequest(msg);
        filter.messageWriting(session, writeRequest, writeController);

        // ack
        CoapMessage ack = new CoapMessage(1, MessageType.ACK, 1, 1234, null, null, null);
        filter.messageReceived(session, ack, readController);

        // wait more than the first timeout
        Thread.sleep(3500L);
View Full Code Here

Examples of org.apache.mina.coap.CoapMessage

    @Test
    public void no_retry_if_reset_received() throws InterruptedException {

        // confirmable
        CoapMessage msg = new CoapMessage(1, MessageType.CONFIRMABLE, 1, 1234, null, null, null);
        WriteRequest writeRequest = new DefaultWriteRequest(msg);
        filter.messageWriting(session, writeRequest, writeController);

        // reset
        CoapMessage ack = new CoapMessage(1, MessageType.RESET, 1, 1234, null, null, null);
        filter.messageReceived(session, ack, readController);

        // wait more than the first timeout
        Thread.sleep(3500L);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.