if ((ret = rtmp->connect_app(req)) != ERROR_SUCCESS) { srs_error("rtmp connect vhost/app failed. ret=%d", ret); return ret; } srs_verbose("rtmp connect app success"); // set client ip to request. req->ip = ip; // discovery vhost, resolve the vhost from config SrsConfDirect...
//发送一个SrsConnectAppResPacket类型的数据包 //response the client connect ok.if((ret = rtmp->response_connect_app(req, local_ip.c_str())) !=ERROR_SUCCESS) { srs_error("response connect app failed. ret=%d", ret);returnret; } srs_verbose("response connect app success"); //发送一...
* pkt 返回,这里成功的话,pkt 指向 SrsConnectAppPacket,里面包含解析后的数据 */if((ret = expect_message<SrsConnectAppPacket>(&msg, &pkt)) != ERROR_SUCCESS) {srs_error("expect connect app message failed. ret=%d", ret);returnret; }SrsAutoFree(SrsCommonMessage, msg);SrsAutoFree(SrsConnect...
= ERROR_SUCCESS) { srs_error("rtmp handshake failed. ret=%d", ret); return ret; } srs_verbose("rtmp handshake success"); //2、rtmp建立网络连接 if ((ret = rtmp->connect_app(req)) != ERROR_SUCCESS) { srs_error("rtmp connect vhost/app failed. ret=%d", ret); return ret; } srs...
SRS流媒体服务器基本流程介绍。 基本流程图 main()、domain()和run_master() 1. main函数所在文件在main/srs_main_server.cpp中。 2. 定义了一些全局变量: _srs_config:全局配置文件 _srs_log:全局的log文件 3. main() 调用 dom...
在SrsRtmpConn 的事件循环中,可以看到 handshake 和 connect 动作。因为 RTMP 协议是 CS 模式,不管是推流还是拉流,都是客户端主动发起连接,然后执行收发媒体之前的协议交互,处理逻辑是一样的。 srs_error_t SrsRtmpConn::do_cycle() { ... // 完成 handshake ...
SrsStSocket 经过封装的socket接⼝ SrsRecvThread 负责接收数据,但是要注意的是他这⾥并不是从IO⾥⾯读取数据,从SrsRtmpServer类拉取数据,然后推送到SrsPublishRecvThread(推流⽤),或者 SrsQueueRecvThread(拉流⽤) SrsQueueRecvThread 主要⽤于拉流,对应的是客户端-服务器的控制消息,和⾳视频消息没有...
srs_error("rtmp connect vhost/app failed. ret=%d", ret); returnret; } srs_verbose("rtmp connect app success"); 注意这里有一个比较重要的数据结构 [cpp]view plaincopy SrsRequest* req 这个主要是存储请求信息的,比如app turl streamid等等。
srs_error("rtmp connect vhost/app failed. ret=%d", ret); return ret; } srs_verbose("rtmp connect app success"); // set client ip to request. req->ip = ip; srs_trace("connect app, " "tcUrl=%s, pageUrl=%s, swfUrl=%s, schema=%s, vhost=%s, port=%s, app=%s, args=%s", ...
main函数在srs_main_server.cpp这个文件中。在main函数中,启动参数在这里不做过多介绍。直接从run()-> run_master()看起。[html] view plain copy int run_master() { int ret = ERROR_SUCCESS; if ((ret = _srs_server->initialize_st()) != ERROR_SUCCESS) { return ret; } if ((...