Browse Source

发包完及时刷新避免包尾部一小段数据未发送而引起接收端延迟

pull/44/head
yhding 7 years ago
parent
commit
57758f3f20
  1. 4
      protocol/rtmp/core/conn_client.go
  2. 4
      protocol/rtmp/core/conn_server.go
  3. 3
      protocol/rtmp/rtmp.go

4
protocol/rtmp/core/conn_client.go

@ -307,6 +307,10 @@ func (connClient *ConnClient) Write(c ChunkStream) error {
return connClient.conn.Write(&c) return connClient.conn.Write(&c)
} }
func (connClient *ConnClient) Flush() error {
return connClient.conn.Flush()
}
func (connClient *ConnClient) Read(c *ChunkStream) (err error) { func (connClient *ConnClient) Read(c *ChunkStream) (err error) {
return connClient.conn.Read(c) return connClient.conn.Read(c)
} }

4
protocol/rtmp/core/conn_server.go

@ -337,6 +337,10 @@ func (connServer *ConnServer) Write(c ChunkStream) error {
return connServer.conn.Write(&c) return connServer.conn.Write(&c)
} }
func (connServer *ConnServer) Flush() error {
return connServer.conn.Flush()
}
func (connServer *ConnServer) Read(c *ChunkStream) (err error) { func (connServer *ConnServer) Read(c *ChunkStream) (err error) {
return connServer.conn.Read(c) return connServer.conn.Read(c)
} }

3
protocol/rtmp/rtmp.go

@ -284,6 +284,7 @@ func (v *VirWriter) Write(p *av.Packet) (err error) {
} }
func (v *VirWriter) SendPacket() error { func (v *VirWriter) SendPacket() error {
Flush := reflect.ValueOf(v.conn).MethodByName("Flush");
var cs core.ChunkStream var cs core.ChunkStream
for { for {
p, ok := <-v.packetQueue p, ok := <-v.packetQueue
@ -312,7 +313,7 @@ func (v *VirWriter) SendPacket() error {
v.closed = true v.closed = true
return err return err
} }
Flush.Call(nil);
} else { } else {
return errors.New("closed") return errors.New("closed")
} }

Loading…
Cancel
Save