func (dc *Datachannel) Use(middlewares ...func(MessageProcessor) MessageProcessor) {
	dc.middlewares = append(dc.middlewares, middlewares...)
}
Use adds the middlewares to the current Datachannel.
The middlewares are going to be executed before the OnMessage event fires.
package sfu
import (
	"context"
	"github.com/pion/webrtc/v3"
)
type (
	Datachannel struct {
		Label       string
		middlewares []func(MessageProcessor) MessageProcessor
		onMessage   func(ctx context.Context, args ProcessArgs)
	}
	ProcessArgs struct {
		Peer        Peer
		Message     webrtc.DataChannelMessage
		DataChannel *webrtc.DataChannel
	}
	Middlewares []func(MessageProcessor) MessageProcessor
	MessageProcessor interface {
		Process(ctx context.Context, args ProcessArgs)
	}
	ProcessFunc func(ctx context.Context, args ProcessArgs)
	chainHandler struct {
		middlewares Middlewares
		Last        MessageProcessor
		current     MessageProcessor
	}
)