mirror of
https://github.com/jwetzell/showbridge-go.git
synced 2026-04-27 05:15:47 +00:00
allow configuring buffer size for udp server
This commit is contained in:
@@ -14,11 +14,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type UDPServer struct {
|
type UDPServer struct {
|
||||||
Addr *net.UDPAddr
|
Addr *net.UDPAddr
|
||||||
config config.ModuleConfig
|
BufferSize int
|
||||||
ctx context.Context
|
config config.ModuleConfig
|
||||||
router route.RouteIO
|
ctx context.Context
|
||||||
logger *slog.Logger
|
router route.RouteIO
|
||||||
|
logger *slog.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@@ -55,7 +56,19 @@ func init() {
|
|||||||
log.Fatalf("error resolving UDP address: %v", err)
|
log.Fatalf("error resolving UDP address: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return &UDPServer{Addr: addr, config: config, ctx: ctx, router: router, logger: slog.Default().With("component", "module", "id", config.Id)}, nil
|
bufferSizeNum := 2048
|
||||||
|
bufferSize, ok := params["bufferSize"]
|
||||||
|
|
||||||
|
if ok {
|
||||||
|
bufferSizeFloat, ok := bufferSize.(float64)
|
||||||
|
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.New("net.udp.server bufferSize must be a number")
|
||||||
|
}
|
||||||
|
bufferSizeNum = int(bufferSizeFloat)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &UDPServer{Addr: addr, BufferSize: bufferSizeNum, config: config, ctx: ctx, router: router, logger: slog.Default().With("component", "module", "id", config.Id)}, nil
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -77,8 +90,7 @@ func (us *UDPServer) Run() error {
|
|||||||
|
|
||||||
defer listener.Close()
|
defer listener.Close()
|
||||||
|
|
||||||
// TODO(jwetzell): make buffer size configurable
|
buffer := make([]byte, us.BufferSize)
|
||||||
buffer := make([]byte, 65535)
|
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-us.ctx.Done():
|
case <-us.ctx.Done():
|
||||||
|
|||||||
Reference in New Issue
Block a user