(gdb) bt
#0SrsProtocol::do_decode_message(this=0xac1280, header=..., stream=0xadb560, ppacket=0xadb550) at src/protocol/srs_rtmp_stack.cpp:700
#10x00000000004655ec in SrsProtocol::decode_message(this=0xac1280, msg=0xade990, ppacket=0xadb5e0) at src/protocol/srs_rtmp_stack.cpp:430
#20x000000000047f8c0 in SrsProtocol::expect_message<SrsConnectAppPacket>(this=0xac1280, pmsg=0xadb670, ppacket=0xadb678) at src/protocol/srs_rtmp_stack.hpp:335
#30x000000000047dc7d in SrsRtmpServer::expect_message<SrsConnectAppPacket>(this=0xac1250, pmsg=0xadb670, ppacket=0xadb678) at src/protocol/srs_rtmp_stack.hpp:776
#40x000000000046df7b in SrsRtmpServer::connect_app(this=0xac1250, req=0xacab30) at src/protocol/srs_rtmp_stack.cpp:2310
#50x00000000004d3594 in SrsRtmpConn::do_cycle(this=0xac0f10) at src/app/srs_app_rtmp_conn.cpp:170
#60x00000000004d1d99 in SrsConnection::cycle(this=0xac0f88) at src/app/srs_app_conn.cpp:171
#70x000000000050ab08 in SrsSTCoroutine::cycle(this=0xac11f0) at src/app/srs_app_st.cpp:198
#80x000000000050ab7d in SrsSTCoroutine::pfn(arg=0xac11f0) at src/app/srs_app_st.cpp:213
#90x00000000005bed1a in _st_thread_main() at sched.c:337
#100x00000000005bf492 in st_thread_create(start=0x5be696<_st_vp_schedule+170>, arg=0x700000001, joinable=1, stk_size=1) at sched.c:616
Backtrace stopped: previous frame inner to thisframe(corrupt stack?)
sudo tcpdump -i any port 1935-XX and dst 36.112.32.2 #不是公网地址
是有返回result消息的,只是wiresharek没有抓取到此包。
1. response_connect_app消息代码分析
SRS服务器向客户端发送esponse_connect_app消息
srs_error_t SrsRtmpServer::response_connect_app(SrsRequest *req,constchar* server_ip){
srs_error_t err = srs_success;
SrsConnectAppResPacket* pkt =newSrsConnectAppResPacket();// @remark For windows, there must be a space between const string and macro.
pkt->props->set("fmsVer",SrsAmf0Any::str("FMS/" RTMP_SIG_FMS_VER));
pkt->props->set("capabilities",SrsAmf0Any::number(127));
pkt->props->set("mode",SrsAmf0Any::number(1));
pkt->info->set(StatusLevel,SrsAmf0Any::str(StatusLevelStatus));
pkt->info->set(StatusCode,SrsAmf0Any::str(StatusCodeConnectSuccess));
pkt->info->set(StatusDescription,SrsAmf0Any::str("Connection succeeded"));
pkt->info->set("objectEncoding",SrsAmf0Any::number(req->objectEncoding));
SrsAmf0EcmaArray* data =SrsAmf0Any::ecma_array();
pkt->info->set("data", data);
data->set("version",SrsAmf0Any::str(RTMP_SIG_FMS_VER));
data->set("srs_sig",SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
data->set("srs_server",SrsAmf0Any::str(RTMP_SIG_SRS_SERVER));
data->set("srs_license",SrsAmf0Any::str(RTMP_SIG_SRS_LICENSE));
data->set("srs_url",SrsAmf0Any::str(RTMP_SIG_SRS_URL));
data->set("srs_version",SrsAmf0Any::str(RTMP_SIG_SRS_VERSION));if(server_ip){
data->set("srs_server_ip",SrsAmf0Any::str(server_ip));}// for edge to directly get the id of client.
data->set("srs_pid",SrsAmf0Any::number(getpid()));
data->set("srs_id",SrsAmf0Any::number(_srs_context->get_id()));if((err = protocol->send_and_free_packet(pkt,0))!= srs_success){returnsrs_error_wrap(err,"send connect app response");}return err;}
Breakpoint 3,SrsProtocol::do_decode_message(this=0xac1280, header=..., stream=0xadb540, ppacket=0xadb530) at src/protocol/srs_rtmp_stack.cpp:712712*ppacket = packet =newSrsFMLEStartPacket();(gdb) bt
#0SrsProtocol::do_decode_message(this=0xac1280, header=..., stream=0xadb540, ppacket=0xadb530) at src/protocol/srs_rtmp_stack.cpp:712
#10x00000000004655ec in SrsProtocol::decode_message(this=0xac1280, msg=0xadce30, ppacket=0xadb5c8) at src/protocol/srs_rtmp_stack.cpp:430
#20x00000000004702bb in SrsRtmpServer::identify_client(this=0xac1250, stream_id=1, type=@0xacab08: SrsRtmpConnUnknown, stream_name="", duration=@0xacac88:-1) at src/protocol/srs_rtmp_stack.cpp:2521
#30x00000000004d519a in SrsRtmpConn::stream_service_cycle(this=0xac0f10) at src/app/srs_app_rtmp_conn.cpp:440
#40x00000000004d4ddf in SrsRtmpConn::service_cycle(this=0xac0f10) at src/app/srs_app_rtmp_conn.cpp:388
#50x00000000004d3ba7 in SrsRtmpConn::do_cycle(this=0xac0f10) at src/app/srs_app_rtmp_conn.cpp:209
#60x00000000004d1d99 in SrsConnection::cycle(this=0xac0f88) at src/app/srs_app_conn.cpp:171
#70x000000000050ab08 in SrsSTCoroutine::cycle(this=0xac11f0) at src/app/srs_app_st.cpp:198
#80x000000000050ab7d in SrsSTCoroutine::pfn(arg=0xac11f0) at src/app/srs_app_st.cpp:213
#90x00000000005bed1a in _st_thread_main() at sched.c:337
#100x00000000005bf492 in st_thread_create(start=0x5be696<_st_vp_schedule+170>, arg=0x700000001, joinable=1, stk_size=1) at sched.c:616
Backtrace stopped: previous frame inner to thisframe(corrupt stack?)
Breakpoint 4,SrsProtocol::do_decode_message(this=0xac1280, header=..., stream=0xadb480, ppacket=0xadb470) at src/protocol/srs_rtmp_stack.cpp:715715*ppacket = packet =newSrsFMLEStartPacket();(gdb) bt
#0SrsProtocol::do_decode_message(this=0xac1280, header=..., stream=0xadb480, ppacket=0xadb470) at src/protocol/srs_rtmp_stack.cpp:715
#10x00000000004655ec in SrsProtocol::decode_message(this=0xac1280, msg=0xadeca0, ppacket=0xadb500) at src/protocol/srs_rtmp_stack.cpp:430
#20x000000000047fd40 in SrsProtocol::expect_message<SrsFMLEStartPacket>(this=0xac1280, pmsg=0xadb588, ppacket=0xadb590) at src/protocol/srs_rtmp_stack.hpp:335
#30x000000000047dfd9 in SrsRtmpServer::expect_message<SrsFMLEStartPacket>(this=0xac1250, pmsg=0xadb588, ppacket=0xadb590) at src/protocol/srs_rtmp_stack.hpp:776
#40x000000000047190c in SrsRtmpServer::start_fmle_publish(this=0xac1250, stream_id=1) at src/protocol/srs_rtmp_stack.cpp:2714
#50x00000000004d5e81 in SrsRtmpConn::stream_service_cycle(this=0xac0f10) at src/app/srs_app_rtmp_conn.cpp:530
#60x00000000004d4ddf in SrsRtmpConn::service_cycle(this=0xac0f10) at src/app/srs_app_rtmp_conn.cpp:388
#70x00000000004d3ba7 in SrsRtmpConn::do_cycle(this=0xac0f10) at src/app/srs_app_rtmp_conn.cpp:209
#80x00000000004d1d99 in SrsConnection::cycle(this=0xac0f88) at src/app/srs_app_conn.cpp:171
#90x000000000050ab08 in SrsSTCoroutine::cycle(this=0xac11f0) at src/app/srs_app_st.cpp:198
#100x000000000050ab7d in SrsSTCoroutine::pfn(arg=0xac11f0) at src/app/srs_app_st.cpp:213
#110x00000000005bed1a in _st_thread_main() at sched.c:337
#120x00000000005bf492 in st_thread_create(start=0x5be696<_st_vp_schedule+170>, arg=0x700000001, joinable=1, stk_size=1) at sched.c:616
Backtrace stopped: previous frame inner to thisframe(corrupt stack?)
(gdb) bt
#0SrsProtocol::do_decode_message(this=0xac1280, header=..., stream=0xadb480, ppacket=0xadb470) at src/protocol/srs_rtmp_stack.cpp:718
#10x00000000004655ec in SrsProtocol::decode_message(this=0xac1280, msg=0xaded60, ppacket=0xadb500) at src/protocol/srs_rtmp_stack.cpp:430
#20x00000000004801c0 in SrsProtocol::expect_message<SrsPublishPacket>(this=0xac1280, pmsg=0xadb588, ppacket=0xadb590) at src/protocol/srs_rtmp_stack.hpp:335
#30x000000000047e35b in SrsRtmpServer::expect_message<SrsPublishPacket>(this=0xac1250, pmsg=0xadb588, ppacket=0xadb590) at src/protocol/srs_rtmp_stack.hpp:776
#40x0000000000471c42 in SrsRtmpServer::start_fmle_publish(this=0xac1250, stream_id=1) at src/protocol/srs_rtmp_stack.cpp:2757
#50x00000000004d5e81 in SrsRtmpConn::stream_service_cycle(this=0xac0f10) at src/app/srs_app_rtmp_conn.cpp:530
#60x00000000004d4ddf in SrsRtmpConn::service_cycle(this=0xac0f10) at src/app/srs_app_rtmp_conn.cpp:388
#70x00000000004d3ba7 in SrsRtmpConn::do_cycle(this=0xac0f10) at src/app/srs_app_rtmp_conn.cpp:209
#80x00000000004d1d99 in SrsConnection::cycle(this=0xac0f88) at src/app/srs_app_conn.cpp:171
#90x000000000050ab08 in SrsSTCoroutine::cycle(this=0xac11f0) at src/app/srs_app_st.cpp:198
#100x000000000050ab7d in SrsSTCoroutine::pfn(arg=0xac11f0) at src/app/srs_app_st.cpp:213
#110x00000000005bed1a in _st_thread_main() at sched.c:337
#120x00000000005bf492 in st_thread_create(start=0x5be696<_st_vp_schedule+170>, arg=0x700000001, joinable=1, stk_size=1) at sched.c:616
Backtrace stopped: previous frame inner to thisframe(corrupt stack?)