Try writing chunks, start with window ack size msg
This commit is contained in:
parent
dbc55a2880
commit
d90127def6
2 changed files with 30 additions and 1 deletions
|
@ -4,6 +4,7 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"stream_server/rtmp/amf"
|
"stream_server/rtmp/amf"
|
||||||
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ChunkWrapper struct {
|
type ChunkWrapper struct {
|
||||||
|
@ -48,6 +49,20 @@ func (chnk_wrp_ptr *ChunkWrapper) ReadChunk() (*Message, error) {
|
||||||
return full_msg_ptr, nil
|
return full_msg_ptr, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (chnk_wrp_ptr *ChunkWrapper) WriteChunk(csid uint32, msg_strmid uint32, msg_ptr *Message) (error) {
|
||||||
|
err := WriteChunk(
|
||||||
|
chnk_wrp_ptr.conn,
|
||||||
|
csid,
|
||||||
|
msg_strmid,
|
||||||
|
msg_ptr,
|
||||||
|
chnk_wrp_ptr.params.chunk_size,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (chnk_wrp_ptr *ChunkWrapper) ReadPeerChunkSize() (error) {
|
func (chnk_wrp_ptr *ChunkWrapper) ReadPeerChunkSize() (error) {
|
||||||
set_chunk_size_msg, err := chnk_wrp_ptr.ReadChunk()
|
set_chunk_size_msg, err := chnk_wrp_ptr.ReadChunk()
|
||||||
if err != nil || set_chunk_size_msg.msg_type != 1 || set_chunk_size_msg.msg_len != 4 {
|
if err != nil || set_chunk_size_msg.msg_type != 1 || set_chunk_size_msg.msg_len != 4 {
|
||||||
|
@ -71,5 +86,16 @@ func (chnk_wrp_ptr *ChunkWrapper) ReadConnectCommand() (error) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (chnk_wrp_ptr *ChunkWrapper) WriteWindowAckSize() (error) {
|
||||||
|
msg_ptr := new(Message)
|
||||||
|
msg_ptr.msg_type = 5
|
||||||
|
msg_ptr.data = make([]byte, 4)
|
||||||
|
msg_ptr.msg_len = 4
|
||||||
|
binary.BigEndian.PutUint32(msg_ptr.data, 5000000)
|
||||||
|
if err := chnk_wrp_ptr.WriteChunk(2, 0, msg_ptr); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,9 @@ func NegotiateConnect(chnk_wrp_ptr *ChunkWrapper) (bool) {
|
||||||
if err := chnk_wrp_ptr.ReadConnectCommand(); err != nil {
|
if err := chnk_wrp_ptr.ReadConnectCommand(); err != nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
if err := chnk_wrp_ptr.WriteWindowAckSize(); err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
fmt.Println(chnk_wrp_ptr.params)
|
fmt.Println(chnk_wrp_ptr.params)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue