Documentation ¶
Index ¶
- Constants
- type ChannelAck
- type ChannelOpen
- type ChannelType
- type Config
- type DataChannel
- func (c *DataChannel) Close() error
- func (c *DataChannel) Read(p []byte) (int, error)
- func (c *DataChannel) ReadDataChannel(p []byte) (int, bool, error)
- func (c *DataChannel) StreamIdentifier() uint16
- func (c *DataChannel) Write(p []byte) (n int, err error)
- func (c *DataChannel) WriteDataChannel(p []byte, isString bool) (n int, err error)
- type Message
- type MessageType
Constants ¶
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 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