2017-01-25 9 views
1

Ich habe gerade CoAP Client mit Arduino erstellt und bin in der Lage, Payload ("Hallo") an den Coap Browser zu senden (installiert von Mozilla Browser). Ich kann es im Browser sehen, es empfängt.Nodejs CoAP Server empfängt keine Payload

Jetzt muss ich meinen eigenen | Nodejs-Server erstellen, um meine Payload (sagen wir "Hallo") vom Arduino-Client zu erhalten. Wie kann ich es erreichen?

Server

var coap  = require('coap'); 
    var server  = coap.createServer(); 

// At this point, I checked from mozilla coap browser, sent "hello" and I am able to receive the HEX values. Same way, I tried to send it from Arduino, but did not print anything 
    server.on('request', function(req, res) { 
     console.log(req.payload); 
    }) 

    // the default CoAP port is 5683 
    server.listen(function() { 
     var req = coap.request('coap://localhost'); 
     console.log('Listening on : 5683') 

     req.on('response', function(res) { 
      res.pipe(process.stdout); 
     }); 

     req.end() 
    }); 

Arduino

void loop() { 
    // send GET or PUT coap request to CoAP server. 
    // To test, use libcoap, microcoap server...etc 
    int msgid = coap.put(IPAddress(192,168,0,11), 5683, "light","1"); 
    Serial.println("Send Request"); 
    //int msgid1 = coap.get(IPAddress(192, 168, 0, 11), 5683, "time"); 

    delay(1000); 
    coap.loop(); 
} 

Antwort

0

Auf dem Arduino, sollten Sie einen COAP Server in Firmware (nicht in Node) implementieren.

Verwenden Sie this Bibliothek? Wenn ja, dann sollten Sie insbesondere this example auschecken, das liest aus dem Ethernet-Peripheriegerät, analysiert das Paket und reagiert dann entsprechend.

Pseudocode:

udp.setup() 

while true 
    p = udp.read() 
    if(p == SUCCESSFUL_UDP_READ_FLAG) 
    parsed = p.parse() 
    if(parsed matches some condition) 
     udp.respond(message regarding condition) 

Es ist ein weiteres Beispiel Server mit 2 Endpunkten here.

Die wichtigen Teile sind:

Innen void setup():

coap.add_resource(&aSensor); 
coap.add_resource(&bSensor); 

Und dann in void loop():

coap.handler(); 
Verwandte Themen