/** * Retransmission intervals (RC = Retransmission Counter): immediately send CON message, set RC = * 0 wait 2 - 3 sec then send retransmission, set RC = 1 wait 4 - 6 sec then send retransmission, * set RC = 2 wait 8 - 12 sec then send retransmission, set RC = 3 wait 16 - 24 sec then send * retransmission, set RC = 4 wait 32 - 48 sec then fail transmission * * @throws Exception */ @Override public void createTestScenario() throws Exception { // client testEndpoint DESCRIPTION // | | // (1) |----CON-GET----------------->| Client sends confirmable request // | | // (2) |----1st RETRANSMISSION------>| (Client should send four // retransmissions) // | | // (3) |----2nd RETRANSMISSION------>| // | | // (4) |----3rd RETRANSMISSION------>| // | | // (5) |----4th RETRANSMISSION------>| // | | // | | internal timeout notification to // response processor // Send coapRequest InetSocketAddress remoteEndpoint = new InetSocketAddress("127.0.0.1", testEndpoint.getPort()); client.sendCoapRequest(coapRequest, responseProcessor, remoteEndpoint); timeRequestSent = System.currentTimeMillis(); // Wait for the message ID to retire (takes 247 seconds). Thread.sleep(50000); log.warn( "Now we have to wait for the message ID to time out (~200 seconds)... Time to get a coffee!"); Thread.sleep(200000); }
@Override public void setupComponents() throws Exception { testEndpoint = new CoapTestEndpoint(); client = new CoapClientApplication("CoAP Testclient"); responseProcessor = new CoapResponseTestProcessor(); URI targetUri = new URI("coap://localhost:" + testEndpoint.getPort() + "/testpath"); coapRequest = new CoapRequest(MessageType.Name.CON, MessageCode.Name.GET, targetUri); }