datachannel

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2018 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ChannelPriorityBelowNormal uint16 = 128
	ChannelPriorityNormal      uint16 = 256
	ChannelPriorityHigh        uint16 = 512
	ChannelPriorityExtraHigh   uint16 = 1024
)

ChannelPriority enums

Variables

This section is empty.

Functions

This section is empty.

Types

type ChannelAck

type ChannelAck struct{}

ChannelAck is used to ACK a DataChannel open

func ParseExpectDataChannelAck

func ParseExpectDataChannelAck(raw []byte) (*ChannelAck, error)

ParseExpectDataChannelAck parses a DataChannelAck message or throws an error

func (*ChannelAck) Marshal

func (c *ChannelAck) Marshal() ([]byte, error)

Marshal returns raw bytes for the given message

func (*ChannelAck) Unmarshal

func (c *ChannelAck) Unmarshal(raw []byte) error

Unmarshal populates the struct with the given raw data

type ChannelOpen

type ChannelOpen struct {
	ChannelType          ChannelType
	Priority             uint16
	ReliabilityParameter uint32

	Label    []byte
	Protocol []byte
}

ChannelOpen represents a DATA_CHANNEL_OPEN Message

0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Type | Channel Type | Priority | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reliability Parameter | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label Length | Protocol Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Label | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Protocol | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

func ParseExpectDataChannelOpen

func ParseExpectDataChannelOpen(raw []byte) (*ChannelOpen, error)

ParseExpectDataChannelOpen parses a DataChannelOpen message or throws an error

func (*ChannelOpen) Marshal

func (c *ChannelOpen) Marshal() ([]byte, error)

Marshal returns raw bytes for the given message

func (*ChannelOpen) Unmarshal

func (c *ChannelOpen) Unmarshal(raw []byte) error

Unmarshal populates the struct with the given raw data

type ChannelType

type ChannelType byte

ChannelType determines the reliability of the WebRTC DataChannel

const (
	// ChannelTypeReliable determines the Data Channel provides a
	// reliable in-order bi-directional communication.
	ChannelTypeReliable ChannelType = 0x00
	// ChannelTypeReliableUnordered determines the Data Channel
	// provides a reliable unordered bi-directional communication.
	ChannelTypeReliableUnordered ChannelType = 0x80
	// ChannelTypePartialReliableRexmit determines the Data Channel
	// provides a partially-reliable in-order bi-directional communication.
	// User messages will not be retransmitted more times than specified in the Reliability Parameter.
	ChannelTypePartialReliableRexmit ChannelType = 0x01
	// ChannelTypePartialReliableRexmitUnordered determines
	//  the Data Channel provides a partial reliable unordered bi-directional communication.
	// User messages will not be retransmitted more times than specified in the Reliability Parameter.
	ChannelTypePartialReliableRexmitUnordered ChannelType = 0x81
	// ChannelTypePartialReliableTimed determines the Data Channel
	// provides a partial reliable in-order bi-directional communication.
	// User messages might not be transmitted or retransmitted after
	// a specified life-time given in milli- seconds in the Reliability Parameter.
	// This life-time starts when providing the user message to the protocol stack.
	ChannelTypePartialReliableTimed ChannelType = 0x02
	// The Data Channel provides a partial reliable unordered bi-directional
	// communication.  User messages might not be transmitted or retransmitted
	// after a specified life-time given in milli- seconds in the Reliability Parameter.
	// This life-time starts when providing the user message to the protocol stack.
	ChannelTypePartialReliableTimedUnordered ChannelType = 0x82
)

ChannelType enums

type Config

type Config struct {
	ChannelType          ChannelType
	Priority             uint16
	ReliabilityParameter uint32
	Label                string
}

Config is used to configure the data channel.

type DataChannel

type DataChannel struct {
	Config
	// contains filtered or unexported fields
}

DataChannel represents a data channel

func Accept

func Accept(a *sctp.Association) (*DataChannel, error)

Accept is used to accept incoming data channels over SCTP

func Client

func Client(stream *sctp.Stream, config *Config) (*DataChannel, error)

Client opens a data channel over an SCTP stream

func Dial

func Dial(a *sctp.Association, id uint16, config *Config) (*DataChannel, error)

Dial opens a data channels over SCTP

func Server

func Server(stream *sctp.Stream) (*DataChannel, error)

Server accepts a data channel over an SCTP stream

func (*DataChannel) Close

func (c *DataChannel) Close() error

Close closes the DataChannel and the underlying SCTP stream.

func (*DataChannel) Read

func (c *DataChannel) Read(p []byte) (int, error)

Read reads a packet of len(p) bytes as binary data

func (*DataChannel) ReadDataChannel

func (c *DataChannel) ReadDataChannel(p []byte) (int, bool, error)

ReadDataChannel reads a packet of len(p) bytes

func (*DataChannel) StreamIdentifier

func (c *DataChannel) StreamIdentifier() uint16

StreamIdentifier returns the Stream identifier associated to the stream.

func (*DataChannel) Write

func (c *DataChannel) Write(p []byte) (n int, err error)

Write writes len(p) bytes from p as binary data

func (*DataChannel) WriteDataChannel

func (c *DataChannel) WriteDataChannel(p []byte, isString bool) (n int, err error)

WriteDataChannel writes len(p) bytes from p

type Message

type Message interface {
	Marshal() ([]byte, error)
	Unmarshal([]byte) error
}

Message is a parsed DataChannel message

func Parse

func Parse(raw []byte) (Message, error)

Parse accepts raw input and returns a DataChannel message

type MessageType

type MessageType byte

MessageType is the first byte in a DataChannel message that specifies type

const (
	DataChannelAck  MessageType = 0x02
	DataChannelOpen MessageType = 0x03
)

DataChannel Message Types

func (MessageType) String

func (t MessageType) String() string

Jump to

Keyboard shortcuts

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