mirror of
https://github.com/Monibuca/plugin-rtmp.git
synced 2025-10-05 07:27:14 +08:00
修复onStatus消息回复格式错误
This commit is contained in:
20
media.go
20
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)
|
||||
|
1
msg.go
1
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
|
||||
|
12
server.go
12
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)
|
||||
|
Reference in New Issue
Block a user