Documentation
¶
Index ¶
- Constants
- Variables
- type ChunkMessage
- type ChunkStreamReader
- type ChunkStreamWriter
- type ChunkStreamer
- func (cs *ChunkStreamer) Close() error
- func (cs *ChunkStreamer) Done() <-chan struct{}
- func (cs *ChunkStreamer) Err() error
- func (cs *ChunkStreamer) NewChunkReader() (*ChunkStreamReader, error)
- func (cs *ChunkStreamer) NewChunkWriter(ctx context.Context, chunkStreamID int) (*ChunkStreamWriter, error)
- func (cs *ChunkStreamer) PeerState() *StreamControlState
- func (cs *ChunkStreamer) Read(cmsg *ChunkMessage) (int, uint32, error)
- func (cs *ChunkStreamer) Sched(writer *ChunkStreamWriter) error
- func (cs *ChunkStreamer) SelfState() *StreamControlState
- func (cs *ChunkStreamer) Write(ctx context.Context, chunkStreamID int, timestamp uint32, cmsg *ChunkMessage) error
- type ChunkStreamerReader
- type ChunkStreamerWriter
- type ClientConn
- func (cc *ClientConn) Close() error
- func (cc *ClientConn) Connect(body *message.NetConnectionConnect) error
- func (cc *ClientConn) CreateStream(body *message.NetConnectionCreateStream, chunkSize uint32) (*Stream, error)
- func (cc *ClientConn) DeleteStream(body *message.NetStreamDeleteStream) error
- func (cc *ClientConn) LastError() error
- type Conn
- type ConnConfig
- type ConnectRejectedError
- type CreateStreamRejectedError
- type DefaultHandler
- func (h *DefaultHandler) OnAudio(timestamp uint32, payload io.Reader) error
- func (h *DefaultHandler) OnClose()
- func (h *DefaultHandler) OnConnect(timestamp uint32, cmd *message.NetConnectionConnect) error
- func (h *DefaultHandler) OnCreateStream(timestamp uint32, cmd *message.NetConnectionCreateStream) error
- func (h *DefaultHandler) OnDeleteStream(timestamp uint32, cmd *message.NetStreamDeleteStream) error
- func (h *DefaultHandler) OnFCPublish(timestamp uint32, cmd *message.NetStreamFCPublish) error
- func (h *DefaultHandler) OnFCUnpublish(timestamp uint32, cmd *message.NetStreamFCUnpublish) error
- func (h *DefaultHandler) OnPlay(_ *StreamContext, timestamp uint32, cmd *message.NetStreamPlay) error
- func (h *DefaultHandler) OnPublish(_ *StreamContext, timestamp uint32, cmd *message.NetStreamPublish) error
- func (h *DefaultHandler) OnReleaseStream(timestamp uint32, cmd *message.NetConnectionReleaseStream) error
- func (h *DefaultHandler) OnServe(conn *Conn)
- func (h *DefaultHandler) OnSetDataFrame(timestamp uint32, data *message.NetStreamSetDataFrame) error
- func (h *DefaultHandler) OnUnknownCommandMessage(timestamp uint32, cmd *message.CommandMessage) error
- func (h *DefaultHandler) OnUnknownDataMessage(timestamp uint32, data *message.DataMessage) error
- func (h *DefaultHandler) OnUnknownMessage(timestamp uint32, msg message.Message) error
- func (h *DefaultHandler) OnVideo(timestamp uint32, payload io.Reader) error
- type DefaultResponsePreset
- type Handler
- type ResponsePreset
- type Server
- type ServerConfig
- type Stream
- func (s *Stream) Close() error
- func (s *Stream) Connect(body *message.NetConnectionConnect) (*message.NetConnectionConnectResult, error)
- func (s *Stream) CreateStream(body *message.NetConnectionCreateStream, chunkSize uint32) (*message.NetConnectionCreateStreamResult, error)
- func (s *Stream) DeleteStream(body *message.NetStreamDeleteStream) error
- func (s *Stream) NotifyStatus(chunkStreamID int, timestamp uint32, body *message.NetStreamOnStatus) error
- func (s *Stream) Publish(body *message.NetStreamPublish) error
- func (s *Stream) ReplyConnect(chunkStreamID int, timestamp uint32, body *message.NetConnectionConnectResult) error
- func (s *Stream) ReplyCreateStream(chunkStreamID int, timestamp uint32, transactionID int64, ...) error
- func (s *Stream) StreamID() uint32
- func (s *Stream) Write(chunkStreamID int, timestamp uint32, msg message.Message) error
- func (s *Stream) WriteDataMessage(chunkStreamID int, timestamp uint32, name string, body message.AMFConvertible) error
- func (s *Stream) WriteSetChunkSize(chunkSize uint32) error
- func (s *Stream) WriteSetPeerBandwidth(chunkStreamID int, timestamp uint32, msg *message.SetPeerBandwidth) error
- func (s *Stream) WriteUserCtrl(chunkStreamID int, timestamp uint32, msg *message.UserCtrl) error
- func (s *Stream) WriteWinAckSize(chunkStreamID int, timestamp uint32, msg *message.WinAckSize) error
- type StreamContext
- type StreamControlState
- func (s *StreamControlState) AckWindowSize() int32
- func (s *StreamControlState) BandwidthLimitType() message.LimitType
- func (s *StreamControlState) BandwidthWindowSize() int32
- func (s *StreamControlState) ChunkSize() uint32
- func (s *StreamControlState) SetAckWindowSize(ackWindowSize int32) error
- func (s *StreamControlState) SetChunkSize(chunkSize uint32) error
- type StreamControlStateConfig
Constants ¶
const ControlStreamID = 0
ControlStreamID StreamID 0 is a control stream
const DefaultChunkSize = 128
const MaxChunkSize = 0xffffff // 5.4.1
Variables ¶
var ErrClosed = errors.New("Server is closed")
Functions ¶
This section is empty.
Types ¶
type ChunkMessage ¶
type ChunkStreamReader ¶
type ChunkStreamReader struct {
// contains filtered or unexported fields
}
type ChunkStreamWriter ¶
type ChunkStreamWriter struct { ChunkStreamReader // contains filtered or unexported fields }
type ChunkStreamer ¶
type ChunkStreamer struct {
// contains filtered or unexported fields
}
func NewChunkStreamer ¶
func NewChunkStreamer(r io.Reader, w io.Writer, config *StreamControlStateConfig) *ChunkStreamer
func (*ChunkStreamer) Close ¶
func (cs *ChunkStreamer) Close() error
func (*ChunkStreamer) Done ¶
func (cs *ChunkStreamer) Done() <-chan struct{}
func (*ChunkStreamer) Err ¶
func (cs *ChunkStreamer) Err() error
func (*ChunkStreamer) NewChunkReader ¶
func (cs *ChunkStreamer) NewChunkReader() (*ChunkStreamReader, error)
func (*ChunkStreamer) NewChunkWriter ¶
func (cs *ChunkStreamer) NewChunkWriter(ctx context.Context, chunkStreamID int) (*ChunkStreamWriter, error)
NewChunkWriter Returns a writer for a chunkStreamID. Wait until writing have been finished if the writer is running.
func (*ChunkStreamer) PeerState ¶
func (cs *ChunkStreamer) PeerState() *StreamControlState
func (*ChunkStreamer) Read ¶
func (cs *ChunkStreamer) Read(cmsg *ChunkMessage) (int, uint32, error)
func (*ChunkStreamer) Sched ¶
func (cs *ChunkStreamer) Sched(writer *ChunkStreamWriter) error
func (*ChunkStreamer) SelfState ¶
func (cs *ChunkStreamer) SelfState() *StreamControlState
func (*ChunkStreamer) Write ¶
func (cs *ChunkStreamer) Write( ctx context.Context, chunkStreamID int, timestamp uint32, cmsg *ChunkMessage, ) error
type ChunkStreamerReader ¶
type ChunkStreamerReader struct {
// contains filtered or unexported fields
}
func (*ChunkStreamerReader) FragmentReadBytes ¶
func (r *ChunkStreamerReader) FragmentReadBytes() uint32
func (*ChunkStreamerReader) ResetFragmentReadBytes ¶
func (r *ChunkStreamerReader) ResetFragmentReadBytes()
func (*ChunkStreamerReader) TotalReadBytes ¶
func (r *ChunkStreamerReader) TotalReadBytes() uint32
type ChunkStreamerWriter ¶
type ChunkStreamerWriter struct {
// contains filtered or unexported fields
}
func (*ChunkStreamerWriter) Flush ¶
func (w *ChunkStreamerWriter) Flush() error
type ClientConn ¶
type ClientConn struct {
// contains filtered or unexported fields
}
ClientConn A wrapper of a connection. It prorives client-side specific features.
func Dial ¶
func Dial(protocol, addr string, config *ConnConfig) (*ClientConn, error)
func DialWithDialer ¶
func DialWithDialer(dialer *net.Dialer, protocol, addr string, config *ConnConfig) (*ClientConn, error)
func (*ClientConn) Close ¶
func (cc *ClientConn) Close() error
func (*ClientConn) Connect ¶
func (cc *ClientConn) Connect(body *message.NetConnectionConnect) error
func (*ClientConn) CreateStream ¶
func (cc *ClientConn) CreateStream(body *message.NetConnectionCreateStream, chunkSize uint32) (*Stream, error)
func (*ClientConn) DeleteStream ¶
func (cc *ClientConn) DeleteStream(body *message.NetStreamDeleteStream) error
func (*ClientConn) LastError ¶
func (cc *ClientConn) LastError() error
type ConnConfig ¶
type ConnConfig struct { Handler Handler SkipHandshakeVerification bool IgnoreMessagesOnNotExistStream bool IgnoreMessagesOnNotExistStreamThreshold uint32 ReaderBufferSize int WriterBufferSize int ControlState StreamControlStateConfig Logger logrus.FieldLogger RPreset ResponsePreset }
type ConnectRejectedError ¶
type ConnectRejectedError struct { TransactionID int64 Result *message.NetConnectionConnectResult }
func (*ConnectRejectedError) Error ¶
func (err *ConnectRejectedError) Error() string
type CreateStreamRejectedError ¶
type CreateStreamRejectedError struct { TransactionID int64 Result *message.NetConnectionCreateStreamResult }
func (*CreateStreamRejectedError) Error ¶
func (err *CreateStreamRejectedError) Error() string
type DefaultHandler ¶
type DefaultHandler struct { }
func (*DefaultHandler) OnAudio ¶
func (h *DefaultHandler) OnAudio(timestamp uint32, payload io.Reader) error
func (*DefaultHandler) OnClose ¶
func (h *DefaultHandler) OnClose()
func (*DefaultHandler) OnConnect ¶
func (h *DefaultHandler) OnConnect(timestamp uint32, cmd *message.NetConnectionConnect) error
func (*DefaultHandler) OnCreateStream ¶
func (h *DefaultHandler) OnCreateStream(timestamp uint32, cmd *message.NetConnectionCreateStream) error
func (*DefaultHandler) OnDeleteStream ¶
func (h *DefaultHandler) OnDeleteStream(timestamp uint32, cmd *message.NetStreamDeleteStream) error
func (*DefaultHandler) OnFCPublish ¶
func (h *DefaultHandler) OnFCPublish(timestamp uint32, cmd *message.NetStreamFCPublish) error
func (*DefaultHandler) OnFCUnpublish ¶
func (h *DefaultHandler) OnFCUnpublish(timestamp uint32, cmd *message.NetStreamFCUnpublish) error
func (*DefaultHandler) OnPlay ¶
func (h *DefaultHandler) OnPlay(_ *StreamContext, timestamp uint32, cmd *message.NetStreamPlay) error
func (*DefaultHandler) OnPublish ¶
func (h *DefaultHandler) OnPublish(_ *StreamContext, timestamp uint32, cmd *message.NetStreamPublish) error
func (*DefaultHandler) OnReleaseStream ¶
func (h *DefaultHandler) OnReleaseStream(timestamp uint32, cmd *message.NetConnectionReleaseStream) error
func (*DefaultHandler) OnServe ¶
func (h *DefaultHandler) OnServe(conn *Conn)
func (*DefaultHandler) OnSetDataFrame ¶
func (h *DefaultHandler) OnSetDataFrame(timestamp uint32, data *message.NetStreamSetDataFrame) error
func (*DefaultHandler) OnUnknownCommandMessage ¶
func (h *DefaultHandler) OnUnknownCommandMessage(timestamp uint32, cmd *message.CommandMessage) error
func (*DefaultHandler) OnUnknownDataMessage ¶
func (h *DefaultHandler) OnUnknownDataMessage(timestamp uint32, data *message.DataMessage) error
func (*DefaultHandler) OnUnknownMessage ¶
func (h *DefaultHandler) OnUnknownMessage(timestamp uint32, msg message.Message) error
type DefaultResponsePreset ¶
type DefaultResponsePreset struct { ServerConnectResultProperties message.NetConnectionConnectResultProperties ServerConnectResultData map[string]interface{} }
DefaultResponsePreset gives a default ServerInfo.
func NewDefaultResponsePreset ¶
func NewDefaultResponsePreset() *DefaultResponsePreset
NewDefaultResponsePreset gives an instance of DefaultResponsePreset
func (*DefaultResponsePreset) GetServerConnectResultData ¶
func (r *DefaultResponsePreset) GetServerConnectResultData() map[string]interface{}
GetServerConnectResultData returns ServerConnectResultData.
func (*DefaultResponsePreset) GetServerConnectResultProperties ¶
func (r *DefaultResponsePreset) GetServerConnectResultProperties() message.NetConnectionConnectResultProperties
GetServerConnectResultProperties returns ServerConnectResultProperties.
type Handler ¶
type Handler interface { OnServe(conn *Conn) OnConnect(timestamp uint32, cmd *message.NetConnectionConnect) error OnCreateStream(timestamp uint32, cmd *message.NetConnectionCreateStream) error OnReleaseStream(timestamp uint32, cmd *message.NetConnectionReleaseStream) error OnDeleteStream(timestamp uint32, cmd *message.NetStreamDeleteStream) error OnPublish(ctx *StreamContext, timestamp uint32, cmd *message.NetStreamPublish) error OnPlay(ctx *StreamContext, timestamp uint32, cmd *message.NetStreamPlay) error OnFCPublish(timestamp uint32, cmd *message.NetStreamFCPublish) error OnFCUnpublish(timestamp uint32, cmd *message.NetStreamFCUnpublish) error OnSetDataFrame(timestamp uint32, data *message.NetStreamSetDataFrame) error OnAudio(timestamp uint32, payload io.Reader) error OnVideo(timestamp uint32, payload io.Reader) error OnUnknownMessage(timestamp uint32, msg message.Message) error OnUnknownCommandMessage(timestamp uint32, cmd *message.CommandMessage) error OnUnknownDataMessage(timestamp uint32, data *message.DataMessage) error OnClose() }
type ResponsePreset ¶
type ResponsePreset interface { GetServerConnectResultProperties() message.NetConnectionConnectResultProperties GetServerConnectResultData() map[string]interface{} }
ResponsePreset is an interface to provider server info. Users of go-rtmp can obfuscate this information by modifying RPreset field of ConnConfig.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func NewServer ¶
func NewServer(config *ServerConfig) *Server
type ServerConfig ¶
type ServerConfig struct {
OnConnect func(net.Conn) (io.ReadWriteCloser, *ConnConfig)
}
type Stream ¶
type Stream struct {
// contains filtered or unexported fields
}
Stream represents a logical message stream
func (*Stream) Connect ¶
func (s *Stream) Connect( body *message.NetConnectionConnect, ) (*message.NetConnectionConnectResult, error)
func (*Stream) CreateStream ¶
func (s *Stream) CreateStream(body *message.NetConnectionCreateStream, chunkSize uint32) (*message.NetConnectionCreateStreamResult, error)
func (*Stream) DeleteStream ¶
func (s *Stream) DeleteStream(body *message.NetStreamDeleteStream) error
func (*Stream) NotifyStatus ¶
func (*Stream) ReplyConnect ¶
func (*Stream) ReplyCreateStream ¶
func (*Stream) WriteDataMessage ¶
func (*Stream) WriteSetChunkSize ¶
func (*Stream) WriteSetPeerBandwidth ¶
func (*Stream) WriteUserCtrl ¶
func (*Stream) WriteWinAckSize ¶
type StreamContext ¶
type StreamContext struct {
StreamID uint32
}
type StreamControlState ¶
type StreamControlState struct {
// contains filtered or unexported fields
}
func NewStreamControlState ¶
func NewStreamControlState(config *StreamControlStateConfig) *StreamControlState
func (*StreamControlState) AckWindowSize ¶
func (s *StreamControlState) AckWindowSize() int32
func (*StreamControlState) BandwidthLimitType ¶
func (s *StreamControlState) BandwidthLimitType() message.LimitType
func (*StreamControlState) BandwidthWindowSize ¶
func (s *StreamControlState) BandwidthWindowSize() int32
func (*StreamControlState) ChunkSize ¶
func (s *StreamControlState) ChunkSize() uint32
func (*StreamControlState) SetAckWindowSize ¶
func (s *StreamControlState) SetAckWindowSize(ackWindowSize int32) error
func (*StreamControlState) SetChunkSize ¶
func (s *StreamControlState) SetChunkSize(chunkSize uint32) error
type StreamControlStateConfig ¶
type StreamControlStateConfig struct { DefaultChunkSize uint32 MaxChunkSize uint32 MaxChunkStreams int DefaultAckWindowSize int32 MaxAckWindowSize int32 DefaultBandwidthWindowSize int32 DefaultBandwidthLimitType message.LimitType MaxBandwidthWindowSize int32 MaxMessageSize uint32 MaxMessageStreams int }
Source Files
¶
- chunk_header.go
- chunk_stream_reader.go
- chunk_stream_writer.go
- chunk_streamer.go
- chunk_streamer_reader.go
- chunk_streamer_writer.go
- client.go
- client_conn.go
- client_control_not_connected_handler.go
- conn.go
- conn_state.go
- context.go
- default_handler.go
- error.go
- handler.go
- response_preset.go
- server.go
- server_conn.go
- server_control_connected_handler.go
- server_control_not_connected_handler.go
- server_data_inactive_handler.go
- server_data_play_handler.go
- server_data_publish_handler.go
- state_handler.go
- stream.go
- stream_handler.go
- streams.go
- transactions.go