stream-server/rtmp/amf/command.go

33 lines
790 B
Go
Raw Normal View History

package amf
import "errors"
func (amf_obj_root AMFObj) ProcessConnect() (err error) {
err = errors.New("Bad AMF connect command")
if _, ok := amf_obj_root[0]; !ok {
return
} else if command_string, ok := amf_obj_root[0].(string); !ok || command_string != "connect" {
return
}
if _, ok := amf_obj_root[1]; !ok {
return
} else if transac_id_float, ok := amf_obj_root[1].(float64); !ok || transac_id_float != 1.0 {
return
}
if _, ok := amf_obj_root[2]; !ok {
return
} else if _, ok := amf_obj_root[2].(AMFObj); !ok {
return
} else if _, ok := amf_obj_root[2].(AMFObj)["app"]; !ok {
return
} else if _, ok := amf_obj_root[2].(AMFObj)["app"].(string); !ok {
return
} else if amf_obj_root[2].(AMFObj)["app"].(string) != "live" {
return
}
err = nil
return
}