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 { @@ -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)
}

4
protocol/rtmp/core/conn_server.go

@ -337,6 +337,10 @@ func (connServer *ConnServer) Write(c ChunkStream) error { @@ -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)
}

3
protocol/rtmp/rtmp.go

@ -284,6 +284,7 @@ func (v *VirWriter) Write(p *av.Packet) (err error) { @@ -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 { @@ -312,7 +313,7 @@ func (v *VirWriter) SendPacket() error {
v.closed = true
return err
}
Flush.Call(nil);
} else {
return errors.New("closed")
}

Loading…
Cancel
Save