mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
[feat] Use server to generate transmission id and client id
This commit is contained in:
@@ -31,7 +31,7 @@ enum SignalStatus {
|
|||||||
SignalReconnecting
|
SignalReconnecting
|
||||||
};
|
};
|
||||||
|
|
||||||
enum TraversalMode { P2P = 0, Relay };
|
enum TraversalMode { P2P = 0, Relay, UnknownMode };
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@@ -46,7 +46,7 @@ typedef void (*OnSignalStatus)(SignalStatus, void*);
|
|||||||
|
|
||||||
typedef void (*OnConnectionStatus)(ConnectionStatus, void*);
|
typedef void (*OnConnectionStatus)(ConnectionStatus, void*);
|
||||||
|
|
||||||
typedef void (*NetStatusReport)(TraversalMode mode, const unsigned short,
|
typedef void (*NetStatusReport)(int, TraversalMode, const unsigned short,
|
||||||
const unsigned short, void*);
|
const unsigned short, void*);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -171,11 +171,13 @@ int PeerConnection::Init(PeerConnectionParams params,
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
on_net_status_report_ = [this](IceTransmission::TraversalType mode,
|
on_net_status_report_ = [this](int TransmissionId,
|
||||||
|
IceTransmission::TraversalType mode,
|
||||||
const unsigned short send,
|
const unsigned short send,
|
||||||
const unsigned short receive, void *user_ptr) {
|
const unsigned short receive, void *user_ptr) {
|
||||||
if (net_status_report_) {
|
if (net_status_report_) {
|
||||||
net_status_report_(TraversalMode(mode), send, receive, user_ptr);
|
net_status_report_(atoi(transmission_id_.c_str()), TraversalMode(mode),
|
||||||
|
send, receive, user_ptr);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -381,6 +383,9 @@ void PeerConnection::ProcessSignal(const std::string &signal) {
|
|||||||
case "transmission_id"_H: {
|
case "transmission_id"_H: {
|
||||||
if (j["status"].get<std::string>() == "success") {
|
if (j["status"].get<std::string>() == "success") {
|
||||||
transmission_id_ = j["transmission_id"].get<std::string>();
|
transmission_id_ = j["transmission_id"].get<std::string>();
|
||||||
|
user_id_ = transmission_id_;
|
||||||
|
net_status_report_(atoi(transmission_id_.c_str()),
|
||||||
|
TraversalMode::UnknownMode, 0, 0, user_data_);
|
||||||
LOG_INFO("Create transmission success with id [{}]", transmission_id_);
|
LOG_INFO("Create transmission success with id [{}]", transmission_id_);
|
||||||
} else if (j["status"].get<std::string>() == "fail") {
|
} else if (j["status"].get<std::string>() == "fail") {
|
||||||
LOG_WARN("Create transmission failed with id [{}], due to [{}]",
|
LOG_WARN("Create transmission failed with id [{}], due to [{}]",
|
||||||
|
|||||||
@@ -16,11 +16,11 @@
|
|||||||
typedef void (*OnReceiveBuffer)(const char *, size_t, const char *,
|
typedef void (*OnReceiveBuffer)(const char *, size_t, const char *,
|
||||||
const size_t, void *);
|
const size_t, void *);
|
||||||
|
|
||||||
typedef void (*OnSignalStatus)(SignalStatus status, void *);
|
typedef void (*OnSignalStatus)(SignalStatus, void *);
|
||||||
|
|
||||||
typedef void (*OnConnectionStatus)(ConnectionStatus status, void *);
|
typedef void (*OnConnectionStatus)(ConnectionStatus, void *);
|
||||||
|
|
||||||
typedef void (*NetStatusReport)(TraversalMode mode, const unsigned short,
|
typedef void (*NetStatusReport)(int, TraversalMode, const unsigned short,
|
||||||
const unsigned short, void *);
|
const unsigned short, void *);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -123,7 +123,7 @@ class PeerConnection {
|
|||||||
std::function<void(const char *, size_t, const char *, size_t)>
|
std::function<void(const char *, size_t, const char *, size_t)>
|
||||||
on_receive_data_ = nullptr;
|
on_receive_data_ = nullptr;
|
||||||
std::function<void(std::string)> on_ice_status_change_ = nullptr;
|
std::function<void(std::string)> on_ice_status_change_ = nullptr;
|
||||||
std::function<void(IceTransmission::TraversalType, const unsigned short,
|
std::function<void(int, IceTransmission::TraversalType, const unsigned short,
|
||||||
const unsigned short, void *)>
|
const unsigned short, void *)>
|
||||||
on_net_status_report_ = nullptr;
|
on_net_status_report_ = nullptr;
|
||||||
bool ice_ready_ = false;
|
bool ice_ready_ = false;
|
||||||
|
|||||||
@@ -240,6 +240,7 @@ int IceTransmission::InitIceTransmission(
|
|||||||
ice_transmission_obj->traversal_type_ = TraversalType::TP2P;
|
ice_transmission_obj->traversal_type_ = TraversalType::TP2P;
|
||||||
}
|
}
|
||||||
ice_transmission_obj->on_receive_net_status_report_(
|
ice_transmission_obj->on_receive_net_status_report_(
|
||||||
|
atoi(ice_transmission_obj->transmission_id_.c_str()),
|
||||||
ice_transmission_obj->traversal_type_, 0, 0, nullptr);
|
ice_transmission_obj->traversal_type_, 0, 0, nullptr);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class IceTransmission {
|
|||||||
kVideoFrameDelta = 4,
|
kVideoFrameDelta = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum TraversalType { TP2P = 0, TRelay = 1 };
|
enum TraversalType { TP2P = 0, TRelay = 1, TUnknown = 2 };
|
||||||
|
|
||||||
public:
|
public:
|
||||||
IceTransmission(bool trickle_ice, bool offer_peer,
|
IceTransmission(bool trickle_ice, bool offer_peer,
|
||||||
@@ -69,7 +69,7 @@ class IceTransmission {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SetOnReceiveNetStatusReportFunc(
|
void SetOnReceiveNetStatusReportFunc(
|
||||||
std::function<void(TraversalType, const unsigned short,
|
std::function<void(int, TraversalType, const unsigned short,
|
||||||
const unsigned short, void *)>
|
const unsigned short, void *)>
|
||||||
on_receive_net_status_report) {
|
on_receive_net_status_report) {
|
||||||
on_receive_net_status_report_ = on_receive_net_status_report;
|
on_receive_net_status_report_ = on_receive_net_status_report;
|
||||||
@@ -131,8 +131,8 @@ class IceTransmission {
|
|||||||
std::function<void(const char *, size_t, const char *, size_t)>
|
std::function<void(const char *, size_t, const char *, size_t)>
|
||||||
on_receive_data_ = nullptr;
|
on_receive_data_ = nullptr;
|
||||||
std::function<void(std::string)> on_ice_status_change_ = nullptr;
|
std::function<void(std::string)> on_ice_status_change_ = nullptr;
|
||||||
std::function<void(TraversalType, const unsigned short, const unsigned short,
|
std::function<void(int, TraversalType, const unsigned short,
|
||||||
void *)>
|
const unsigned short, void *)>
|
||||||
on_receive_net_status_report_ = nullptr;
|
on_receive_net_status_report_ = nullptr;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
Reference in New Issue
Block a user