plgd-dev / go-coap

Implementation of CoAP Server & Client in Go

Home Page:https://coap.technology

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TCP message bigger than 64kB

MichaIJarosz opened this issue · comments

Hello,
I have not found an option to send a message larger than 64kB using TCP. Is there any way to send a larger message?

Hi.
You need to use option tcp.WithMaxMessageSize .
eg:

import(
  ...
  "github.com/plgd-dev/go-coap/v2/tcp"
  ...
)
...
s := tcp.NewServer(tcp.WithMaxMessageSize(256*1024))
...

Thank you.
For posterity:

func main() {
r := mux.NewRouter()
r.Use(loggingMiddleware)
r.Handle("/a", mux.HandlerFunc(handleA))
log.Printf("LISTEN")
s := tcp.NewServer(tcp.WithMaxMessageSize(128*1024), tcp.WithMux(r))
l, err := net.NewTCPListener("tcp4", "0.0.0.0:5688")
if err != nil {
	log.Fatal(err)
}
defer s.Stop()
log.Fatal(s.Serve(l))
}