signaling

package
v0.0.0-...-c496343 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2020 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MessageTypeHeartbeat    = MessageType("heartbeat")
	MessageTypeJoin         = MessageType("join")
	MessageTypeLeave        = MessageType("leave")
	MessageTypeOffer        = MessageType("offer")
	MessageTypeAnswer       = MessageType("answer")
	MessageTypeICECandidate = MessageType("icecandidate")
)

Variables

View Source
var ErrPeerNotFound = errors.New("peer not found")

Functions

This section is empty.

Types

type Message

type Message struct {
	Type          MessageType            `json:"type" validate:"required"`
	SourceID      PeerID                 `json:"peerId" validate:"required"`
	DestinationID PeerID                 `json:"destId"`
	Payload       map[string]interface{} `json:"payload" validate:"required"`
}

func NewMessageFromBytes

func NewMessageFromBytes(sourceID PeerID, data []byte) (Message, error)

func (*Message) ToJSON

func (m *Message) ToJSON() ([]byte, error)

type MessageType

type MessageType string

type Peer

type Peer struct {
	// contains filtered or unexported fields
}

func NewPeer

func NewPeer(conn PeerConnection) *Peer

func (*Peer) Close

func (p *Peer) Close()

func (*Peer) GetNextMessage

func (p *Peer) GetNextMessage() (Message, error)

func (*Peer) Heartbeat

func (p *Peer) Heartbeat()

func (*Peer) ID

func (p *Peer) ID() PeerID

func (*Peer) SendMessage

func (p *Peer) SendMessage(message Message) error

func (*Peer) Timedout

func (p *Peer) Timedout() bool

type PeerConnection

type PeerConnection interface {
	ReadMessage() (int, []byte, error)
	WriteJSON(interface{}) error
	Close() error
}

type PeerID

type PeerID string

type Room

type Room struct {
	// contains filtered or unexported fields
}

func NewRoom

func NewRoom() *Room

func (*Room) AddMember

func (r *Room) AddMember(member RoomMember)

func (*Room) Broadcast

func (r *Room) Broadcast(message Message) error

func (*Room) Dispatch

func (r *Room) Dispatch(source RoomMember, message Message)

func (*Room) GetMember

func (r *Room) GetMember(peerID PeerID) RoomMember

func (*Room) MessageMember

func (r *Room) MessageMember(message Message) error

func (*Room) RemoveMember

func (r *Room) RemoveMember(members RoomMember)

func (*Room) StartReaper

func (r *Room) StartReaper(interval time.Duration)

type RoomMember

type RoomMember interface {
	ID() PeerID
	SendMessage(Message) error
	Timedout() bool
	Close()
}

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(room *Room) *Server

func (*Server) ServeHTTP

func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL