diff --git a/server/internal/webrtc/manager.go b/server/internal/webrtc/manager.go index 4c514a91..76665c27 100644 --- a/server/internal/webrtc/manager.go +++ b/server/internal/webrtc/manager.go @@ -16,6 +16,7 @@ import ( "github.com/pion/webrtc/v3" "github.com/rs/zerolog" "github.com/rs/zerolog/log" + "github.com/spf13/viper" "m1k1o/neko/internal/config" "m1k1o/neko/internal/webrtc/cursor" @@ -476,15 +477,17 @@ func (manager *WebRTCManagerCtx) CreatePeer(session types.Session) (*webrtc.Sess // new implementation creates a new data channel on server side // - // handle legacy data channel - dc.OnMessage(func(message webrtc.DataChannelMessage) { - if err := manager.handleLegacy(logger, message.Data, session); err != nil { - logger.Err(err).Msg("data handle failed") - } - }) + if viper.GetBool("legacy") { + // handle legacy data channel + dc.OnMessage(func(message webrtc.DataChannelMessage) { + if err := manager.handleLegacy(logger, message.Data, session); err != nil { + logger.Err(err).Msg("data handle failed") + } + }) - // handle legacy data channel - peer.dataChannel = dc + // handle legacy data channel + peer.dataChannel = dc + } }) var once sync.Once