From f524e94cb9812317d82c2a4488aff617e12f13c7 Mon Sep 17 00:00:00 2001 From: dexter <178529795@qq.com> Date: Thu, 10 Mar 2022 00:05:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DonStatus=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E6=A0=BC=E5=BC=8F=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- media.go | 20 ++++++++++---------- msg.go | 1 - server.go | 12 ++++++------ 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/media.go b/media.go index abf1d01..e990217 100644 --- a/media.go +++ b/media.go @@ -69,14 +69,14 @@ func (sender *RTMPSender) sendAVMessage(ts uint32, payload net.Buffers, isAudio return nil } -func (r *RTMPSender) Response(code, level string) error { +func (r *RTMPSender) Response(tid uint64, code, level string) error { m := new(ResponsePlayMessage) m.CommandName = Response_OnStatus - m.TransactionId = 0 + m.TransactionId = tid m.Object = AMFObject{ - "code": code, - "level": level, - "clientid": 1, + "code": code, + "level": level, + "description": "", } m.StreamID = r.StreamID return r.SendMessage(RTMP_MSG_AMF0_COMMAND, m) @@ -88,14 +88,14 @@ type RTMPReceiver struct { absTs map[uint32]uint32 } -func (r *RTMPReceiver) Response(code, level string) error { +func (r *RTMPReceiver) Response(tid uint64, code, level string) error { m := new(ResponsePublishMessage) m.CommandName = Response_OnStatus - m.TransactionId = 0 + m.TransactionId = tid m.Infomation = AMFObject{ - "code": code, - "level": level, - "clientid": 1, + "code": code, + "level": level, + "description": "", } m.StreamID = r.StreamID return r.SendMessage(RTMP_MSG_AMF0_COMMAND, m) diff --git a/msg.go b/msg.go index fa99d38..d1e502b 100644 --- a/msg.go +++ b/msg.go @@ -760,7 +760,6 @@ func (msg *ResponsePublishMessage) Encode() []byte { var amf AMF amf.writeString(msg.CommandName) amf.writeNumber(float64(msg.TransactionId)) - amf.writeNull() amf.writeObject(msg.Properties) amf.writeObject(msg.Infomation) return amf.Buffer diff --git a/server.go b/server.go index 7109e5e..9514aad 100644 --- a/server.go +++ b/server.go @@ -30,7 +30,7 @@ type RTMPSubscriber struct { func (s *RTMPSubscriber) OnEvent(event any) { switch event.(type) { case engine.SEclose: - s.Response(NetStream_Play_Stop, Level_Status) + s.Response(0, NetStream_Play_Stop, Level_Status) } s.RTMPSender.OnEvent(event) } @@ -119,9 +119,9 @@ func (config *RTMPConfig) ServeTCP(conn *net.TCPConn) { receivers[receiver.StreamID] = receiver receiver.absTs = make(map[uint32]uint32) receiver.Begin() - err = receiver.Response(NetStream_Publish_Start, Level_Status) + err = receiver.Response(pm.TransactionId, NetStream_Publish_Start, Level_Status) } else { - err = receiver.Response(NetStream_Publish_BadName, Level_Error) + err = receiver.Response(pm.TransactionId, NetStream_Publish_BadName, Level_Error) } case "play": pm := msg.MsgData.(*PlayMessage) @@ -137,11 +137,11 @@ func (config *RTMPConfig) ServeTCP(conn *net.TCPConn) { senders[sender.StreamID] = sender err = nc.SendStreamID(RTMP_USER_STREAM_IS_RECORDED, msg.MessageStreamID) sender.Begin() - sender.Response(NetStream_Play_Reset, Level_Status) - sender.Response(NetStream_Play_Start, Level_Status) + sender.Response(pm.TransactionId, NetStream_Play_Reset, Level_Status) + sender.Response(pm.TransactionId, NetStream_Play_Start, Level_Status) go sender.PlayBlock(sender) } else { - sender.Response(NetStream_Play_Failed, Level_Error) + sender.Response(pm.TransactionId, NetStream_Play_Failed, Level_Error) } case "closeStream": cm := msg.MsgData.(*CURDStreamMessage)