Refactor command process to separate file
This commit is contained in:
parent
0c054b67c0
commit
3d7e00169b
2 changed files with 31 additions and 32 deletions
31
rtmp/amf/command.go
Normal file
31
rtmp/amf/command.go
Normal file
|
@ -0,0 +1,31 @@
|
|||
package amf
|
||||
|
||||
import "errors"
|
||||
|
||||
func (amf_obj_root AMFObj) ProcessConnect() (string, error) {
|
||||
err := errors.New("Bad AMF connect command")
|
||||
if _, ok := amf_obj_root[0]; !ok {
|
||||
return "", err
|
||||
} else if command_string, ok := amf_obj_root[0].(string); !ok || command_string != "connect" {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if _, ok := amf_obj_root[1]; !ok {
|
||||
return "", err
|
||||
} else if transac_id_float, ok := amf_obj_root[1].(float64); !ok || transac_id_float != 1.0 {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if _, ok := amf_obj_root[2]; !ok {
|
||||
return "", err
|
||||
} else if _, ok := amf_obj_root[2].(AMFObj); !ok {
|
||||
return "", err
|
||||
} else if _, ok := amf_obj_root[2].(AMFObj)["tcUrl"]; !ok {
|
||||
return "", err
|
||||
} else if tcUrl, ok := amf_obj_root[2].(AMFObj)["tcUrl"].(string); ok {
|
||||
return tcUrl, nil
|
||||
} else {
|
||||
return "", err
|
||||
}
|
||||
|
||||
}
|
|
@ -1,9 +1,5 @@
|
|||
package amf
|
||||
|
||||
import (
|
||||
"errors"
|
||||
)
|
||||
|
||||
type AMFObj map[interface{}]interface{}
|
||||
|
||||
func DecodeAMF(data *[]byte) (AMFObj, error) {
|
||||
|
@ -15,31 +11,3 @@ func DecodeAMF(data *[]byte) (AMFObj, error) {
|
|||
test["tcUrl"] = "rtmp://test-domain.nil/Desktop/tmp"
|
||||
return obj, nil
|
||||
}
|
||||
|
||||
func (amf_obj_root AMFObj) ProcessConnect() (string, error) {
|
||||
err := errors.New("Bad AMF connect command")
|
||||
if _, ok := amf_obj_root[0]; !ok {
|
||||
return "", err
|
||||
} else if command_string, ok := amf_obj_root[0].(string); !ok || command_string != "connect" {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if _, ok := amf_obj_root[1]; !ok {
|
||||
return "", err
|
||||
} else if transac_id_float, ok := amf_obj_root[1].(float64); !ok || transac_id_float != 1.0 {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if _, ok := amf_obj_root[2]; !ok {
|
||||
return "", err
|
||||
} else if _, ok := amf_obj_root[2].(AMFObj); !ok {
|
||||
return "", err
|
||||
} else if _, ok := amf_obj_root[2].(AMFObj)["tcUrl"]; !ok {
|
||||
return "", err
|
||||
} else if tcUrl, ok := amf_obj_root[2].(AMFObj)["tcUrl"].(string); ok {
|
||||
return tcUrl, nil
|
||||
} else {
|
||||
return "", err
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue