go coap
v3.3.6
بروتوكول التطبيقات المقيدة (CoAP) هو بروتوكول نقل ويب متخصص للاستخدام مع العقد المقيدة والشبكات المقيدة في إنترنت الأشياء. تم تصميم البروتوكول لتطبيقات آلة إلى آلة (M2M) مثل الطاقة الذكية وأتمتة المباني.
يوفر go-coap خوادم وعملاء لـ DTLS وTCP-TLS وUDP وTCP بلغة جولانج.
// Server
// Middleware function, which will be called for each request.
func loggingMiddleware ( next mux. Handler ) mux. Handler {
return mux . HandlerFunc ( func ( w mux. ResponseWriter , r * mux. Message ) {
log . Printf ( "ClientAddress %v, %v n " , w . Conn (). RemoteAddr (), r . String ())
next . ServeCOAP ( w , r )
})
}
// See /examples/simple/server/main.go
func handleA ( w mux. ResponseWriter , req * mux. Message ) {
err := w . SetResponse ( codes . GET , message . TextPlain , bytes . NewReader ([] byte ( "hello world" )))
if err != nil {
log . Printf ( "cannot set response: %v" , err )
}
}
func main () {
r := mux . NewRouter ()
r . Use ( loggingMiddleware )
r . Handle ( "/a" , mux . HandlerFunc ( handleA ))
r . Handle ( "/b" , mux . HandlerFunc ( handleB ))
log . Fatal ( coap . ListenAndServe ( "udp" , ":5688" , r ))
// for tcp
// log.Fatal(coap.ListenAndServe("tcp", ":5688", r))
// for tcp-tls
// log.Fatal(coap.ListenAndServeTLS("tcp", ":5688", &tls.Config{...}, r))
// for udp-dtls
// log.Fatal(coap.ListenAndServeDTLS("udp", ":5688", &dtls.Config{...}, r))
}
// Client
// See /examples/simpler/client/main.go
func main () {
co , err := udp . Dial ( "localhost:5688" )
// for tcp
// co, err := tcp.Dial("localhost:5688")
// for tcp-tls
// co, err := tcp.Dial("localhost:5688", tcp.WithTLS(&tls.Config{...}))
// for dtls
// co, err := dtls.Dial("localhost:5688", &dtls.Config{...}))
if err != nil {
log . Fatalf ( "Error dialing: %v" , err )
}
ctx , cancel := context . WithTimeout ( context . Background (), time . Second )
defer cancel ()
resp , err := co . Get ( ctx , "/a" )
if err != nil {
log . Fatalf ( "Cannot get response: %v" , err )
return
}
log . Printf ( "Response: %+v" , resp )
}
مثال الخادم.
مثال العميل.
مثال الخادم.
مثال العميل.
أباتشي 2.0
كن راعيًا واحصل على شعارك على ملف README الخاص بنا على Github مع رابط لموقعك.
كن داعمًا واحصل على صورتك في ملف README الخاص بنا على Github مع رابط لموقعك.