mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-23 11:17:09 +08:00
rtp发送去除重连机制
This commit is contained in:
parent
6a4297845f
commit
0cab9c8d16
@ -281,38 +281,10 @@ void RtpSender::onFlushRtpList(shared_ptr<List<Buffer::Ptr> > rtp_list) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void RtpSender::onErr(const SockException &ex, bool is_connect) {
|
void RtpSender::onErr(const SockException &ex) {
|
||||||
_is_connect = false;
|
_is_connect = false;
|
||||||
|
WarnL << "send rtp tcp connection lost: " << ex.what();
|
||||||
if (_args.passive || !_args.is_udp) {
|
onClose(ex);
|
||||||
WarnL << "send rtp tcp connection lost: " << ex.what();
|
|
||||||
//tcp模式,如果对方断开连接,应该停止发送rtp
|
|
||||||
onClose(ex);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//监听socket断开事件,方便重连
|
|
||||||
if (is_connect) {
|
|
||||||
WarnL << "重连" << _args.dst_url << ":" << _args.dst_port << "失败, 原因为:" << ex.what();
|
|
||||||
} else {
|
|
||||||
WarnL << "停止发送 rtp:" << _args.dst_url << ":" << _args.dst_port << ", 原因为:" << ex.what();
|
|
||||||
}
|
|
||||||
|
|
||||||
weak_ptr<RtpSender> weak_self = shared_from_this();
|
|
||||||
_connect_timer = std::make_shared<Timer>(10.0f, [weak_self]() {
|
|
||||||
auto strong_self = weak_self.lock();
|
|
||||||
if (!strong_self) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
strong_self->startSend(strong_self->_args, [weak_self](uint16_t local_port, const SockException &ex){
|
|
||||||
auto strong_self = weak_self.lock();
|
|
||||||
if (strong_self && ex) {
|
|
||||||
//连接失败且本对象未销毁,那么重试连接
|
|
||||||
strong_self->onErr(ex, true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return false;
|
|
||||||
}, _poller);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RtpSender::setOnClose(std::function<void(const toolkit::SockException &ex)> on_close){
|
void RtpSender::setOnClose(std::function<void(const toolkit::SockException &ex)> on_close){
|
||||||
|
@ -62,7 +62,7 @@ private:
|
|||||||
//udp/tcp连接成功回调
|
//udp/tcp连接成功回调
|
||||||
void onConnect();
|
void onConnect();
|
||||||
//异常断开socket事件
|
//异常断开socket事件
|
||||||
void onErr(const toolkit::SockException &ex, bool is_connect = false);
|
void onErr(const toolkit::SockException &ex);
|
||||||
void createRtcpSocket();
|
void createRtcpSocket();
|
||||||
void onRecvRtcp(RtcpHeader *rtcp);
|
void onRecvRtcp(RtcpHeader *rtcp);
|
||||||
void onSendRtpUdp(const toolkit::Buffer::Ptr &buf, bool check);
|
void onSendRtpUdp(const toolkit::Buffer::Ptr &buf, bool check);
|
||||||
@ -74,7 +74,6 @@ private:
|
|||||||
toolkit::Socket::Ptr _socket_rtp;
|
toolkit::Socket::Ptr _socket_rtp;
|
||||||
toolkit::Socket::Ptr _socket_rtcp;
|
toolkit::Socket::Ptr _socket_rtcp;
|
||||||
toolkit::EventPoller::Ptr _poller;
|
toolkit::EventPoller::Ptr _poller;
|
||||||
toolkit::Timer::Ptr _connect_timer;
|
|
||||||
MediaSinkInterface::Ptr _interface;
|
MediaSinkInterface::Ptr _interface;
|
||||||
std::shared_ptr<RtcpContext> _rtcp_context;
|
std::shared_ptr<RtcpContext> _rtcp_context;
|
||||||
toolkit::Ticker _rtcp_send_ticker;
|
toolkit::Ticker _rtcp_send_ticker;
|
||||||
|
Loading…
Reference in New Issue
Block a user