func (c *BaseConnection) HandleMessage(msg *models.Message) error {
	panic("Not implemented!")
}
HandleMessage handles incoming messages
package peer
import (
	"github.com/muka/peerjs-go/emitter"
	"github.com/muka/peerjs-go/models"
	"github.com/pion/webrtc/v3"
	"github.com/sirupsen/logrus"
)
type Connection interface {
	GetType() string
	GetID() string
	GetPeerID() string
	GetProvider() *Peer
	GetMetadata() interface{}
	GetPeerConnection() *webrtc.PeerConnection
	SetPeerConnection(pc *webrtc.PeerConnection)
	Close() error
	HandleMessage(*models.Message) error
	Emit(string, interface{})
	GetOptions() ConnectionOptions
}
func newBaseConnection(connType string, peer *Peer, opts ConnectionOptions) BaseConnection {
	return BaseConnection{
		Emitter:    emitter.NewEmitter(),
		Type:       connType,
		Provider:   peer,
		log:        createLogger(connType, opts.Debug),
		opts:       opts,
		negotiator: nil,
	}
}
type BaseConnection struct {
	emitter.Emitter
	id string
	peerID string
	Provider *Peer
	DataChannel *webrtc.DataChannel
	Label string
	Metadata interface{}
	Open bool
	PeerConnection *webrtc.PeerConnection
	Reliable bool
	Serialization string
	Type string
	BufferSize int
	opts       ConnectionOptions
	log        *logrus.Entry
	negotiator *Negotiator
}
func (c *BaseConnection) GetOptions() ConnectionOptions {
	return c.opts
}
func (c *BaseConnection) GetMetadata() interface{} {
	return c.Metadata
}
func (c *BaseConnection) GetPeerConnection() *webrtc.PeerConnection {
	return c.PeerConnection
}
func (c *BaseConnection) SetPeerConnection(pc *webrtc.PeerConnection) {
	c.PeerConnection = pc
	c.log.Debugf("%v", c.PeerConnection)
}
func (c *BaseConnection) GetID() string {
	return c.id
}
func (c *BaseConnection) GetPeerID() string {
	return c.peerID
}
func (c *BaseConnection) Close() error {
	panic("Not implemented!")
}