1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

For #906, #902, use connection manager to remove connection

This commit is contained in:
winlin 2017-05-29 18:34:41 +08:00
parent 44f542f77f
commit 3ffb0980f5
6 changed files with 108 additions and 9 deletions

View file

@ -42,7 +42,7 @@ class SrsFlvDecoder;
class SrsTcpClient;
class SrsSimpleRtmpClient;
#include <srs_app_st.hpp>
#include <srs_app_thread.hpp>
#include <srs_app_listener.hpp>
#include <srs_app_conn.hpp>
#include <srs_app_http_conn.hpp>
@ -52,24 +52,25 @@ class SrsSimpleRtmpClient;
* the stream caster for flv stream over HTTP POST.
*/
class SrsAppCasterFlv : virtual public ISrsTcpHandler
, virtual public IConnectionManager, virtual public ISrsHttpHandler
, virtual public IConnectionManager, virtual public ISrsHttpHandler
{
private:
std::string output;
SrsHttpServeMux* http_mux;
std::vector<SrsHttpConn*> conns;
SrsCoroutineManager* manager;
public:
SrsAppCasterFlv(SrsConfDirective* c);
virtual ~SrsAppCasterFlv();
public:
virtual int initialize();
// ISrsTcpHandler
// ISrsTcpHandler
public:
virtual int on_tcp_client(st_netfd_t stfd);
// IConnectionManager
// IConnectionManager
public:
virtual void remove(ISrsConnection* c);
// ISrsHttpHandler
// ISrsHttpHandler
public:
virtual int serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessage* r);
};