2016-07-03 13 views
0

CoAPサーバーを開始したら、新しいリソースを動的に追加する必要があります。しかし、新しいリソースにアクセスするには、サーバーを停止して再起動する必要があります。すでに開始しているHTTPサーバーに新しいHTTPサーブレットを追加するのと同じように、新しいリソースを追加するとします。新しいリソースを動的に追加する - CoAP

ここでは、動的リソースを追加するためのソースコードを追加しました。私がここに何かを見つけていないなら、私に知らせてください。

@Override 
public void handleGET(CoapExchange exchange) { 
    server.getRoot().add(new CoapResource("dynstatus") { 
     @Override 
     public void handleGET(CoapExchange exchange) { 
      System.err.println("dynstatus!!!"); 
     } 
    }); 

をし、それを呼び出すことができました:

private static CoapServer server; 

public CoAPEventAdapter(InputEventAdapterConfiguration eventAdapterConfiguration, 
         Map<String, String> globalProperties) { 
    this.eventAdapterConfiguration = eventAdapterConfiguration; 
    this.globalProperties = globalProperties; 
    if(server == null){ 
     server = new CoapServer(); 
     server.start(); 
    } 
} 

@Override 
public void connect() { 
    registerDynamicEndpoint(eventAdapterConfiguration.getName()); 
    isConnected = true; 
} 

private void registerDynamicEndpoint(String adapterName) { 
     server.stop(); 
     server.add(new HelloWorldResource(adapterName)); 
     server.start(); 
} 


class HelloWorldResource extends CoapResource { 

    public HelloWorldResource(String resourceName) { 
     // set resource identifier 
     super(resourceName); 
     // set display name 
     getAttributes().setTitle("Hello-World Resource"); 
    } 

    @Override 
    public void handleGET(CoapExchange exchange) { 

     // respond to the request 
     exchange.respond("Hello World!"); 
    } 
} 

答えて

0

私は動的にCoapResourceを追加しようとしました。

関連する問題