Ctrl K
ComunidadGuías…

encoders/encoder.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package encoders

import (
	"github.com/anycable/anycable-go/common"
	"github.com/anycable/anycable-go/ws"
)

type EncodedMessage interface {
	GetType() string
}

var _ EncodedMessage = (*common.Reply)(nil)
var _ EncodedMessage = (*common.PingMessage)(nil)
var _ EncodedMessage = (*common.DisconnectMessage)(nil)

type Encoder interface {
	ID() string
	Encode(msg EncodedMessage) (*ws.SentFrame, error)
	EncodeTransmission(msg string) (*ws.SentFrame, error)
	Decode(payload []byte) (*common.Message, error)
}

var _ Encoder = (*JSON)(nil)