[feat] add callback to notify the travsesal mode

This commit is contained in:
dijunkun
2024-07-30 17:31:44 +08:00
parent af49ebe63d
commit 54179722e5
6 changed files with 57 additions and 7 deletions

View File

@@ -96,6 +96,7 @@ int PeerConnection::Init(PeerConnectionParams params,
on_receive_data_buffer_ = params.on_receive_data_buffer;
on_signal_status_ = params.on_signal_status;
on_connection_status_ = params.on_connection_status;
net_status_report_ = params.net_status_report;
user_data_ = params.user_data;
on_receive_ws_msg_ = [this](const std::string &msg) { ProcessSignal(msg); };
@@ -170,6 +171,14 @@ int PeerConnection::Init(PeerConnectionParams params,
}
};
on_net_status_report_ = [this](IceTransmission::TraversalType mode,
const unsigned short send,
const unsigned short receive, void *user_ptr) {
if (net_status_report_) {
net_status_report_(TraversalMode(mode), send, receive, user_ptr);
}
};
ws_transport_ =
std::make_shared<WsTransmission>(on_receive_ws_msg_, on_ws_status_);
uri_ = "ws://" + cfg_signal_server_ip_ + ":" + cfg_signal_server_port_;
@@ -435,6 +444,8 @@ void PeerConnection::ProcessSignal(const std::string &signal) {
on_receive_audio_);
ice_transmission_list_[remote_user_id]->SetOnReceiveDataFunc(
on_receive_data_);
ice_transmission_list_[remote_user_id]
->SetOnReceiveNetStatusReportFunc(on_net_status_report_);
ice_transmission_list_[remote_user_id]->InitIceTransmission(
cfg_stun_server_ip_, stun_server_port_, cfg_turn_server_ip_,
@@ -486,6 +497,9 @@ void PeerConnection::ProcessSignal(const std::string &signal) {
on_receive_audio_);
ice_transmission_list_[remote_user_id]->SetOnReceiveDataFunc(
on_receive_data_);
ice_transmission_list_[remote_user_id]->SetOnReceiveNetStatusReportFunc(
on_net_status_report_);
ice_transmission_list_[remote_user_id]->InitIceTransmission(
cfg_stun_server_ip_, stun_server_port_, cfg_turn_server_ip_,
turn_server_port_, cfg_turn_server_username_,