diff --git a/protocol/rtmp/core/conn_client.go b/protocol/rtmp/core/conn_client.go index 4016de0f..987a72ff 100755 --- a/protocol/rtmp/core/conn_client.go +++ b/protocol/rtmp/core/conn_client.go @@ -307,6 +307,10 @@ func (connClient *ConnClient) Write(c ChunkStream) error { return connClient.conn.Write(&c) } +func (connClient *ConnClient) Flush() error { + return connClient.conn.Flush() +} + func (connClient *ConnClient) Read(c *ChunkStream) (err error) { return connClient.conn.Read(c) } diff --git a/protocol/rtmp/core/conn_server.go b/protocol/rtmp/core/conn_server.go index 5858f5fa..e85b7d87 100755 --- a/protocol/rtmp/core/conn_server.go +++ b/protocol/rtmp/core/conn_server.go @@ -337,6 +337,10 @@ func (connServer *ConnServer) Write(c ChunkStream) error { return connServer.conn.Write(&c) } +func (connServer *ConnServer) Flush() error { + return connServer.conn.Flush() +} + func (connServer *ConnServer) Read(c *ChunkStream) (err error) { return connServer.conn.Read(c) } diff --git a/protocol/rtmp/rtmp.go b/protocol/rtmp/rtmp.go index ea3722ee..1a760174 100755 --- a/protocol/rtmp/rtmp.go +++ b/protocol/rtmp/rtmp.go @@ -284,6 +284,7 @@ func (v *VirWriter) Write(p *av.Packet) (err error) { } func (v *VirWriter) SendPacket() error { + Flush := reflect.ValueOf(v.conn).MethodByName("Flush"); var cs core.ChunkStream for { p, ok := <-v.packetQueue @@ -312,7 +313,7 @@ func (v *VirWriter) SendPacket() error { v.closed = true return err } - + Flush.Call(nil); } else { return errors.New("closed") }