[feat] LeaveConnection() method needs to specific which transmission wants to leave

This commit is contained in:
dijunkun
2024-08-07 17:32:22 +08:00
parent 8dc96eeb4c
commit dd8ab05d0f
4 changed files with 10 additions and 8 deletions

View File

@@ -85,7 +85,7 @@ DLLAPI int CreateConnection(PeerPtr* peer_ptr, const char* transmission_id,
DLLAPI int JoinConnection(PeerPtr* peer_ptr, const char* transmission_id, DLLAPI int JoinConnection(PeerPtr* peer_ptr, const char* transmission_id,
const char* password); const char* password);
DLLAPI int LeaveConnection(PeerPtr* peer_ptr); DLLAPI int LeaveConnection(PeerPtr* peer_ptr, const char* transmission_id);
DLLAPI int SendData(PeerPtr* peer_ptr, DATA_TYPE data_type, const char* data, DLLAPI int SendData(PeerPtr* peer_ptr, DATA_TYPE data_type, const char* data,
size_t size); size_t size);

View File

@@ -193,6 +193,8 @@ int PeerConnection::Init(PeerConnectionParams params,
nv12_data_ = new char[1280 * 720 * 3 / 2]; nv12_data_ = new char[1280 * 720 * 3 / 2];
LOG_INFO("[{}] Init finish", user_id);
// if (0 != CreateVideoCodec(hardware_acceleration_)) { // if (0 != CreateVideoCodec(hardware_acceleration_)) {
// LOG_ERROR("Create video codec failed"); // LOG_ERROR("Create video codec failed");
// return -1; // return -1;
@@ -342,7 +344,7 @@ int PeerConnection::Join(const std::string &transmission_id,
return ret; return ret;
} }
int PeerConnection::Leave() { int PeerConnection::Leave(const std::string &transmission_id) {
if (SignalStatus::SignalConnected != GetSignalStatus()) { if (SignalStatus::SignalConnected != GetSignalStatus()) {
LOG_ERROR("Signal not connected"); LOG_ERROR("Signal not connected");
return -1; return -1;
@@ -350,11 +352,11 @@ int PeerConnection::Leave() {
json message = {{"type", "leave_transmission"}, json message = {{"type", "leave_transmission"},
{"user_id", user_id_}, {"user_id", user_id_},
{"transmission_id", transmission_id_}}; {"transmission_id", transmission_id}};
if (ws_transport_) { if (ws_transport_) {
ws_transport_->Send(message.dump()); ws_transport_->Send(message.dump());
LOG_INFO("[{}] sends leave transmission [{}] notification ", user_id_, LOG_INFO("[{}] sends leave transmission [{}] notification ", user_id_,
transmission_id_); transmission_id);
} }
ice_ready_ = false; ice_ready_ = false;
@@ -576,7 +578,7 @@ int PeerConnection::RequestTransmissionMemberList(
return -1; return -1;
} }
LOG_INFO("Request member list"); LOG_INFO("[{}] Request member list", user_id_);
json message = {{"type", "query_user_id_list"}, json message = {{"type", "query_user_id_list"},
{"transmission_id", transmission_id_}, {"transmission_id", transmission_id_},

View File

@@ -61,7 +61,7 @@ class PeerConnection {
int Join(const std::string &transmission_id, int Join(const std::string &transmission_id,
const std::string &password = ""); const std::string &password = "");
int Leave(); int Leave(const std::string &transmission_id);
int Destroy(); int Destroy();

View File

@@ -81,13 +81,13 @@ int JoinConnection(PeerPtr *peer_ptr, const char *transmission_id,
return ret; return ret;
} }
int LeaveConnection(PeerPtr *peer_ptr) { int LeaveConnection(PeerPtr *peer_ptr, const char *transmission_id) {
if (!peer_ptr) { if (!peer_ptr) {
LOG_ERROR("peer_ptr not created"); LOG_ERROR("peer_ptr not created");
return -1; return -1;
} }
peer_ptr->peer_connection->Leave(); peer_ptr->peer_connection->Leave(transmission_id);
LOG_INFO("LeaveConnection"); LOG_INFO("LeaveConnection");
return 0; return 0;
} }