COAP協議使用初步(JAVA語言)

1.添加依賴

/* 特定倉庫 */
repositories {
    maven {
        url 'https://repo.eclipse.org/content/repositories/californium/'
    }
}

jar {
    manifest {
        attributes 'Main-Class': 'czy.demo.COAPServer'
    }
}

/* 依賴管理配置 */
dependencyManagement {
    /* 禁用maven排除語義 */
    applyMavenExclusions = false
    /* 禁止用依賴項覆蓋依賴管理項 */
    overriddenByDependencies = false
    /* 生成POM裏包含 */
    generatedPomCustomization {
        enabled = true
    }
    /* 禁用緩存 */
    resolutionStrategy {
        cacheChangingModulesFor 0, 'seconds'
    }
    /* 導入父級依賴 */
    imports {
        mavenBom 'org.eclipse.californium:parent:2.2.3'
    }
}

dependencies {

    /* 核心模塊 */
    compile group: 'org.eclipse.californium', name: 'californium-core'
    /* 使用netty的tcp傳輸 */
    compile group: 'org.eclipse.californium', name: 'element-connector-tcp-netty'
    /* udp數據報傳輸 */
    compile group: 'org.eclipse.californium', name: 'element-connector'
    /* 通過UDP使用DTLS交換數據的庫 */
    compile group: 'org.eclipse.californium', name: 'scandium'
    /* 交叉代理模塊 */
    compile group: 'org.eclipse.californium', name: 'californium-proxy'
    /* NAT實現,用於與地址更改相關的測試 */
    //compile group: 'org.eclipse.californium', name: 'cf-nat'
    /* 滿足Californium依賴項歸屬所需的一組文檔 */
    runtime group: 'org.eclipse.californium', name: 'californium-legal'
    /* Java密鑰庫包含基於X.509 ECC的證書,用於演示。 這些證書由Scandium單元測試和演示應用程序使用。 請勿在生產系統中使用! */
    testCompile group: 'org.eclipse.californium', name: 'demo-certs'
}

 

2.服務端

import lombok.extern.slf4j.Slf4j;
import org.eclipse.californium.core.CoapResource;
import org.eclipse.californium.core.CoapServer;
import org.eclipse.californium.core.server.resources.CoapExchange;

@Slf4j
public class COAPServerTest {

    public static void main(String[] args){
        CoapServer server = new CoapServer();
        /* 添加,一個資源名稱,可以對應多種請求方法 */
        server.add(new CoapResource("hello"){
            @Override
            public void handleGET(CoapExchange exchange) {
                log.info("接收到請求:"+exchange.getRequestText());
                exchange.respond("hello world!");
            }
        });
        server.start();
        log.info("服務端啓動!!!");
    }

}

 

3.客戶端

import lombok.extern.slf4j.Slf4j;
import org.eclipse.californium.core.CoapClient;
import org.eclipse.californium.core.CoapHandler;
import org.eclipse.californium.core.CoapResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.net.URI;

@Slf4j
public class COAPClientTest {

    public static void main(String[] args)throws Exception{
        /* 一個客戶端對應一個資源 */
        CoapClient  client = new CoapClient(new URI("coap://127.0.0.1/hello"));
        /* 調用不同的資源方法 */
        CoapResponse response =  client.get();
        log.info("請求成功");
        log.info(response.getCode().toString());
        log.info(response.getOptions().toString());
        log.info(response.getResponseText());
        log.info("complete");
    }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章