Versions in this module Expand all Collapse all v0 v0.0.8 Apr 2, 2024 Changes in this version + const ControlStreamID + const DefaultChunkSize + const MaxChunkSize + var ErrClosed = errors.New("Server is closed") + type ChunkMessage struct + Message message.Message + StreamID uint32 + type ChunkStreamReader struct + func (r *ChunkStreamReader) Read(b []byte) (int, error) + type ChunkStreamWriter struct + func (w *ChunkStreamWriter) Wait(ctx context.Context) error + func (w *ChunkStreamWriter) Write(b []byte) (int, error) + type ChunkStreamer struct + func NewChunkStreamer(r io.Reader, w io.Writer, config *StreamControlStateConfig) *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 struct + func (r *ChunkStreamerReader) FragmentReadBytes() uint32 + func (r *ChunkStreamerReader) Read(b []byte) (int, error) + func (r *ChunkStreamerReader) ResetFragmentReadBytes() + func (r *ChunkStreamerReader) TotalReadBytes() uint32 + type ChunkStreamerWriter struct + func (w *ChunkStreamerWriter) Flush() error + func (w *ChunkStreamerWriter) Write(buf []byte) (int, error) + type ClientConn struct + func Dial(protocol, addr string, config *ConnConfig) (*ClientConn, error) + func DialWithDialer(dialer *net.Dialer, protocol, addr string, config *ConnConfig) (*ClientConn, error) + 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 struct + func (c *Conn) Close() error + func (c *Conn) GetChunkStreamer() *ChunkStreamer + func (c *Conn) Write(ctx context.Context, chunkStreamID int, timestamp uint32, cmsg *ChunkMessage) error + type ConnConfig struct + ControlState StreamControlStateConfig + Handler Handler + IgnoreMessagesOnNotExistStream bool + IgnoreMessagesOnNotExistStreamThreshold uint32 + Logger logrus.FieldLogger + RPreset ResponsePreset + ReaderBufferSize int + SkipHandshakeVerification bool + WriterBufferSize int + type ConnectRejectedError struct + Result *message.NetConnectionConnectResult + TransactionID int64 + func (err *ConnectRejectedError) Error() string + type CreateStreamRejectedError struct + Result *message.NetConnectionCreateStreamResult + TransactionID int64 + func (err *CreateStreamRejectedError) Error() string + type DefaultHandler struct + 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) OnError(err error) 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 struct + ServerConnectResultData map[string]interface{} + ServerConnectResultProperties message.NetConnectionConnectResultProperties + func NewDefaultResponsePreset() *DefaultResponsePreset + func (r *DefaultResponsePreset) GetServerConnectResultData() map[string]interface{} + func (r *DefaultResponsePreset) GetServerConnectResultProperties() message.NetConnectionConnectResultProperties + type Handler interface + OnAudio func(timestamp uint32, payload io.Reader) error + OnClose func() + OnConnect func(timestamp uint32, cmd *message.NetConnectionConnect) error + OnCreateStream func(timestamp uint32, cmd *message.NetConnectionCreateStream) error + OnDeleteStream func(timestamp uint32, cmd *message.NetStreamDeleteStream) error + OnError func(err error) error + OnFCPublish func(timestamp uint32, cmd *message.NetStreamFCPublish) error + OnFCUnpublish func(timestamp uint32, cmd *message.NetStreamFCUnpublish) error + OnPlay func(ctx *StreamContext, timestamp uint32, cmd *message.NetStreamPlay) error + OnPublish func(ctx *StreamContext, timestamp uint32, cmd *message.NetStreamPublish) error + OnReleaseStream func(timestamp uint32, cmd *message.NetConnectionReleaseStream) error + OnServe func(conn *Conn) + OnSetDataFrame func(timestamp uint32, data *message.NetStreamSetDataFrame) error + OnUnknownCommandMessage func(timestamp uint32, cmd *message.CommandMessage) error + OnUnknownDataMessage func(timestamp uint32, data *message.DataMessage) error + OnUnknownMessage func(timestamp uint32, msg message.Message) error + OnVideo func(timestamp uint32, payload io.Reader) error + type ResponsePreset interface + GetServerConnectResultData func() map[string]interface{} + GetServerConnectResultProperties func() message.NetConnectionConnectResultProperties + type Server struct + func NewServer(config *ServerConfig) *Server + func (srv *Server) Close() error + func (srv *Server) Serve(l net.Listener) error + type ServerConfig struct + OnConnect func(net.Conn) (io.ReadWriteCloser, *ConnConfig) + type Stream struct + 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 struct + StreamID uint32 + type StreamControlState struct + func NewStreamControlState(config *StreamControlStateConfig) *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 struct + DefaultAckWindowSize int32 + DefaultBandwidthLimitType message.LimitType + DefaultBandwidthWindowSize int32 + DefaultChunkSize uint32 + MaxAckWindowSize int32 + MaxBandwidthWindowSize int32 + MaxChunkSize uint32 + MaxChunkStreams int + MaxMessageSize uint32 + MaxMessageStreams int