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");
}
}