正在显示
3 个修改的文件
包含
92 行增加
和
4 行删除
| @@ -61,7 +61,7 @@ int SrsApiRoot::do_process_request(SrsSocket* skt, SrsHttpMessage* req) | @@ -61,7 +61,7 @@ int SrsApiRoot::do_process_request(SrsSocket* skt, SrsHttpMessage* req) | ||
| 61 | ss << JOBJECT_START | 61 | ss << JOBJECT_START |
| 62 | << JFIELD_ERROR(ERROR_SUCCESS) << JFIELD_CONT | 62 | << JFIELD_ERROR(ERROR_SUCCESS) << JFIELD_CONT |
| 63 | << JFIELD_ORG("urls", JOBJECT_START) | 63 | << JFIELD_ORG("urls", JOBJECT_START) |
| 64 | - << JFIELD_STR("v1", "the api version 1.0") | 64 | + << JFIELD_STR("api", "the api root") |
| 65 | << JOBJECT_END | 65 | << JOBJECT_END |
| 66 | << JOBJECT_END; | 66 | << JOBJECT_END; |
| 67 | 67 | ||
| @@ -70,6 +70,7 @@ int SrsApiRoot::do_process_request(SrsSocket* skt, SrsHttpMessage* req) | @@ -70,6 +70,7 @@ int SrsApiRoot::do_process_request(SrsSocket* skt, SrsHttpMessage* req) | ||
| 70 | 70 | ||
| 71 | SrsApiApi::SrsApiApi() | 71 | SrsApiApi::SrsApiApi() |
| 72 | { | 72 | { |
| 73 | + handlers.push_back(new SrsApiV1()); | ||
| 73 | } | 74 | } |
| 74 | 75 | ||
| 75 | SrsApiApi::~SrsApiApi() | 76 | SrsApiApi::~SrsApiApi() |
| @@ -83,8 +84,75 @@ bool SrsApiApi::can_handle(const char* path, int length, const char** /*pchild*/ | @@ -83,8 +84,75 @@ bool SrsApiApi::can_handle(const char* path, int length, const char** /*pchild*/ | ||
| 83 | 84 | ||
| 84 | int SrsApiApi::do_process_request(SrsSocket* skt, SrsHttpMessage* req) | 85 | int SrsApiApi::do_process_request(SrsSocket* skt, SrsHttpMessage* req) |
| 85 | { | 86 | { |
| 86 | - std::string body = "hello, api"; | ||
| 87 | - return res_text(skt, body); | 87 | + std::stringstream ss; |
| 88 | + | ||
| 89 | + ss << JOBJECT_START | ||
| 90 | + << JFIELD_ERROR(ERROR_SUCCESS) << JFIELD_CONT | ||
| 91 | + << JFIELD_ORG("urls", JOBJECT_START) | ||
| 92 | + << JFIELD_STR("v1", "the api version 1.0") | ||
| 93 | + << JOBJECT_END | ||
| 94 | + << JOBJECT_END; | ||
| 95 | + | ||
| 96 | + return res_json(skt, ss.str()); | ||
| 97 | +} | ||
| 98 | + | ||
| 99 | +SrsApiV1::SrsApiV1() | ||
| 100 | +{ | ||
| 101 | + handlers.push_back(new SrsApiVersion()); | ||
| 102 | +} | ||
| 103 | + | ||
| 104 | +SrsApiV1::~SrsApiV1() | ||
| 105 | +{ | ||
| 106 | +} | ||
| 107 | + | ||
| 108 | +bool SrsApiV1::can_handle(const char* path, int length, const char** /*pchild*/) | ||
| 109 | +{ | ||
| 110 | + return srs_path_equals("/v1", path, length); | ||
| 111 | +} | ||
| 112 | + | ||
| 113 | +int SrsApiV1::do_process_request(SrsSocket* skt, SrsHttpMessage* req) | ||
| 114 | +{ | ||
| 115 | + std::stringstream ss; | ||
| 116 | + | ||
| 117 | + ss << JOBJECT_START | ||
| 118 | + << JFIELD_ERROR(ERROR_SUCCESS) << JFIELD_CONT | ||
| 119 | + << JFIELD_ORG("urls", JOBJECT_START) | ||
| 120 | + << JFIELD_STR("version", "the version of SRS") | ||
| 121 | + << JOBJECT_END | ||
| 122 | + << JOBJECT_END; | ||
| 123 | + | ||
| 124 | + return res_json(skt, ss.str()); | ||
| 125 | +} | ||
| 126 | + | ||
| 127 | +SrsApiVersion::SrsApiVersion() | ||
| 128 | +{ | ||
| 129 | +} | ||
| 130 | + | ||
| 131 | +SrsApiVersion::~SrsApiVersion() | ||
| 132 | +{ | ||
| 133 | +} | ||
| 134 | + | ||
| 135 | +bool SrsApiVersion::can_handle(const char* path, int length, const char** /*pchild*/) | ||
| 136 | +{ | ||
| 137 | + return srs_path_equals("/version", path, length); | ||
| 138 | +} | ||
| 139 | + | ||
| 140 | +int SrsApiVersion::do_process_request(SrsSocket* skt, SrsHttpMessage* req) | ||
| 141 | +{ | ||
| 142 | + std::stringstream ss; | ||
| 143 | + | ||
| 144 | + ss << JOBJECT_START | ||
| 145 | + << JFIELD_ERROR(ERROR_SUCCESS) << JFIELD_CONT | ||
| 146 | + << JFIELD_ORG("data", JOBJECT_START) | ||
| 147 | + << JFIELD_ORG("major", VERSION_MAJOR) << JFIELD_CONT | ||
| 148 | + << JFIELD_ORG("minor", VERSION_MINOR) << JFIELD_CONT | ||
| 149 | + << JFIELD_ORG("revision", VERSION_REVISION) << JFIELD_CONT | ||
| 150 | + << JFIELD_STR("version", RTMP_SIG_SRS_VERSION) << JFIELD_CONT | ||
| 151 | + << JFIELD_STR("primary_authors", RTMP_SIG_SRS_PRIMARY_AUTHROS) | ||
| 152 | + << JOBJECT_END | ||
| 153 | + << JOBJECT_END; | ||
| 154 | + | ||
| 155 | + return res_json(skt, ss.str()); | ||
| 88 | } | 156 | } |
| 89 | 157 | ||
| 90 | SrsHttpApi::SrsHttpApi(SrsServer* srs_server, st_netfd_t client_stfd, SrsHttpHandler* _handler) | 158 | SrsHttpApi::SrsHttpApi(SrsServer* srs_server, st_netfd_t client_stfd, SrsHttpHandler* _handler) |
| @@ -62,6 +62,26 @@ public: | @@ -62,6 +62,26 @@ public: | ||
| 62 | virtual int do_process_request(SrsSocket* skt, SrsHttpMessage* req); | 62 | virtual int do_process_request(SrsSocket* skt, SrsHttpMessage* req); |
| 63 | }; | 63 | }; |
| 64 | 64 | ||
| 65 | +class SrsApiV1 : public SrsHttpHandler | ||
| 66 | +{ | ||
| 67 | +public: | ||
| 68 | + SrsApiV1(); | ||
| 69 | + virtual ~SrsApiV1(); | ||
| 70 | +public: | ||
| 71 | + virtual bool can_handle(const char* path, int length, const char** pchild); | ||
| 72 | + virtual int do_process_request(SrsSocket* skt, SrsHttpMessage* req); | ||
| 73 | +}; | ||
| 74 | + | ||
| 75 | +class SrsApiVersion : public SrsHttpHandler | ||
| 76 | +{ | ||
| 77 | +public: | ||
| 78 | + SrsApiVersion(); | ||
| 79 | + virtual ~SrsApiVersion(); | ||
| 80 | +public: | ||
| 81 | + virtual bool can_handle(const char* path, int length, const char** pchild); | ||
| 82 | + virtual int do_process_request(SrsSocket* skt, SrsHttpMessage* req); | ||
| 83 | +}; | ||
| 84 | + | ||
| 65 | class SrsHttpApi : public SrsConnection | 85 | class SrsHttpApi : public SrsConnection |
| 66 | { | 86 | { |
| 67 | private: | 87 | private: |
| @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 31 | // current release version | 31 | // current release version |
| 32 | #define VERSION_MAJOR "0" | 32 | #define VERSION_MAJOR "0" |
| 33 | #define VERSION_MINOR "9" | 33 | #define VERSION_MINOR "9" |
| 34 | -#define VERSION_REVISION "42" | 34 | +#define VERSION_REVISION "43" |
| 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION | 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION |
| 36 | // server info. | 36 | // server info. |
| 37 | #define RTMP_SIG_SRS_KEY "srs" | 37 | #define RTMP_SIG_SRS_KEY "srs" |
-
请 注册 或 登录 后发表评论