mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 20:25:34 +08:00
[feat] add user id in params
This commit is contained in:
@@ -80,7 +80,7 @@ typedef void (*OnReceiveBuffer)(const char*, size_t, const char*, const size_t,
|
|||||||
typedef void (*OnReceiveVideoFrame)(const XVideoFrame*, const char*,
|
typedef void (*OnReceiveVideoFrame)(const XVideoFrame*, const char*,
|
||||||
const size_t, void*);
|
const size_t, void*);
|
||||||
|
|
||||||
typedef void (*OnSignalStatus)(SignalStatus, void*);
|
typedef void (*OnSignalStatus)(SignalStatus, const char*, const size_t, void*);
|
||||||
|
|
||||||
typedef void (*OnConnectionStatus)(ConnectionStatus, const char*, const size_t,
|
typedef void (*OnConnectionStatus)(ConnectionStatus, const char*, const size_t,
|
||||||
void*);
|
void*);
|
||||||
@@ -114,6 +114,8 @@ typedef struct {
|
|||||||
OnSignalStatus on_signal_status;
|
OnSignalStatus on_signal_status;
|
||||||
OnConnectionStatus on_connection_status;
|
OnConnectionStatus on_connection_status;
|
||||||
NetStatusReport net_status_report;
|
NetStatusReport net_status_report;
|
||||||
|
|
||||||
|
const char* user_id;
|
||||||
void* user_data;
|
void* user_data;
|
||||||
} Params;
|
} Params;
|
||||||
|
|
||||||
@@ -121,7 +123,7 @@ DLLAPI PeerPtr* CreatePeer(const Params* params);
|
|||||||
|
|
||||||
DLLAPI void DestroyPeer(PeerPtr** peer_ptr);
|
DLLAPI void DestroyPeer(PeerPtr** peer_ptr);
|
||||||
|
|
||||||
DLLAPI int Init(PeerPtr* peer_ptr, const char* user_id);
|
DLLAPI int Init(PeerPtr* peer_ptr);
|
||||||
|
|
||||||
DLLAPI int CreateConnection(PeerPtr* peer_ptr, const char* transmission_id,
|
DLLAPI int CreateConnection(PeerPtr* peer_ptr, const char* transmission_id,
|
||||||
const char* password);
|
const char* password);
|
||||||
|
|||||||
@@ -13,14 +13,13 @@ PeerConnection::PeerConnection() {}
|
|||||||
|
|
||||||
PeerConnection::~PeerConnection() { user_data_ = nullptr; }
|
PeerConnection::~PeerConnection() { user_data_ = nullptr; }
|
||||||
|
|
||||||
int PeerConnection::Init(PeerConnectionParams params,
|
int PeerConnection::Init(PeerConnectionParams params) {
|
||||||
const std::string &user_id) {
|
|
||||||
if (inited_) {
|
if (inited_) {
|
||||||
LOG_INFO("Peer already inited");
|
LOG_INFO("Peer already inited");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
// Todo: checkout user_id unique or not
|
// Todo: checkout user_id unique or not
|
||||||
user_id_ = user_id;
|
user_id_ = params.user_id;
|
||||||
|
|
||||||
if (params.use_cfg_file) {
|
if (params.use_cfg_file) {
|
||||||
INIReader reader(params.cfg_path);
|
INIReader reader(params.cfg_path);
|
||||||
@@ -103,7 +102,8 @@ int PeerConnection::Init(PeerConnectionParams params,
|
|||||||
if (WsStatus::WsOpening == ws_status) {
|
if (WsStatus::WsOpening == ws_status) {
|
||||||
ws_status_ = WsStatus::WsOpening;
|
ws_status_ = WsStatus::WsOpening;
|
||||||
signal_status_ = SignalStatus::SignalConnecting;
|
signal_status_ = SignalStatus::SignalConnecting;
|
||||||
on_signal_status_(SignalStatus::SignalConnecting, user_data_);
|
on_signal_status_(SignalStatus::SignalConnecting, user_id_.data(),
|
||||||
|
user_id_.size(), user_data_);
|
||||||
} else if (WsStatus::WsOpened == ws_status) {
|
} else if (WsStatus::WsOpened == ws_status) {
|
||||||
ws_status_ = WsStatus::WsOpened;
|
ws_status_ = WsStatus::WsOpened;
|
||||||
LOG_INFO("Login to signal server");
|
LOG_INFO("Login to signal server");
|
||||||
@@ -111,19 +111,23 @@ int PeerConnection::Init(PeerConnectionParams params,
|
|||||||
} else if (WsStatus::WsFailed == ws_status) {
|
} else if (WsStatus::WsFailed == ws_status) {
|
||||||
ws_status_ = WsStatus::WsFailed;
|
ws_status_ = WsStatus::WsFailed;
|
||||||
signal_status_ = SignalStatus::SignalFailed;
|
signal_status_ = SignalStatus::SignalFailed;
|
||||||
on_signal_status_(SignalStatus::SignalFailed, user_data_);
|
on_signal_status_(SignalStatus::SignalFailed, user_id_.data(),
|
||||||
|
user_id_.size(), user_data_);
|
||||||
} else if (WsStatus::WsClosed == ws_status) {
|
} else if (WsStatus::WsClosed == ws_status) {
|
||||||
ws_status_ = WsStatus::WsClosed;
|
ws_status_ = WsStatus::WsClosed;
|
||||||
signal_status_ = SignalStatus::SignalClosed;
|
signal_status_ = SignalStatus::SignalClosed;
|
||||||
on_signal_status_(SignalStatus::SignalClosed, user_data_);
|
on_signal_status_(SignalStatus::SignalClosed, user_id_.data(),
|
||||||
|
user_id_.size(), user_data_);
|
||||||
} else if (WsStatus::WsReconnecting == ws_status) {
|
} else if (WsStatus::WsReconnecting == ws_status) {
|
||||||
ws_status_ = WsStatus::WsReconnecting;
|
ws_status_ = WsStatus::WsReconnecting;
|
||||||
signal_status_ = SignalStatus::SignalReconnecting;
|
signal_status_ = SignalStatus::SignalReconnecting;
|
||||||
on_signal_status_(SignalStatus::SignalReconnecting, user_data_);
|
on_signal_status_(SignalStatus::SignalReconnecting, user_id_.data(),
|
||||||
|
user_id_.size(), user_data_);
|
||||||
} else if (WsStatus::WsServerClosed == ws_status) {
|
} else if (WsStatus::WsServerClosed == ws_status) {
|
||||||
ws_status_ = WsStatus::WsServerClosed;
|
ws_status_ = WsStatus::WsServerClosed;
|
||||||
signal_status_ = SignalStatus::SignalServerClosed;
|
signal_status_ = SignalStatus::SignalServerClosed;
|
||||||
on_signal_status_(SignalStatus::SignalServerClosed, user_data_);
|
on_signal_status_(SignalStatus::SignalServerClosed, user_id_.data(),
|
||||||
|
user_id_.size(), user_data_);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -196,7 +200,7 @@ int PeerConnection::Init(PeerConnectionParams params,
|
|||||||
// do {
|
// do {
|
||||||
// } while (SignalStatus::SignalConnected != GetSignalStatus());
|
// } while (SignalStatus::SignalConnected != GetSignalStatus());
|
||||||
|
|
||||||
LOG_INFO("[{}] Init finish", user_id);
|
LOG_INFO("[{}] Init finish", user_id_);
|
||||||
|
|
||||||
inited_ = true;
|
inited_ = true;
|
||||||
return 0;
|
return 0;
|
||||||
@@ -414,7 +418,8 @@ void PeerConnection::ProcessSignal(const std::string &signal) {
|
|||||||
user_id_.data(), user_id_.size(), user_data_);
|
user_id_.data(), user_id_.size(), user_data_);
|
||||||
LOG_INFO("Login success with id [{}]", user_id_);
|
LOG_INFO("Login success with id [{}]", user_id_);
|
||||||
signal_status_ = SignalStatus::SignalConnected;
|
signal_status_ = SignalStatus::SignalConnected;
|
||||||
on_signal_status_(SignalStatus::SignalConnected, user_data_);
|
on_signal_status_(SignalStatus::SignalConnected, user_id_.data(),
|
||||||
|
user_id_.size(), user_data_);
|
||||||
} else if (j["status"].get<std::string>() == "fail") {
|
} else if (j["status"].get<std::string>() == "fail") {
|
||||||
LOG_WARN("Login failed with id [{}]", user_id_);
|
LOG_WARN("Login failed with id [{}]", user_id_);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ typedef void (*OnReceiveBuffer)(const char *, size_t, const char *,
|
|||||||
typedef void (*OnReceiveVideoFrame)(const XVideoFrame *video_frame,
|
typedef void (*OnReceiveVideoFrame)(const XVideoFrame *video_frame,
|
||||||
const char *, const size_t, void *);
|
const char *, const size_t, void *);
|
||||||
|
|
||||||
typedef void (*OnSignalStatus)(SignalStatus, void *);
|
typedef void (*OnSignalStatus)(SignalStatus, const char *, const size_t,
|
||||||
|
void *);
|
||||||
|
|
||||||
typedef void (*OnConnectionStatus)(ConnectionStatus, const char *, const size_t,
|
typedef void (*OnConnectionStatus)(ConnectionStatus, const char *, const size_t,
|
||||||
void *);
|
void *);
|
||||||
@@ -60,6 +61,8 @@ typedef struct {
|
|||||||
OnSignalStatus on_signal_status;
|
OnSignalStatus on_signal_status;
|
||||||
OnConnectionStatus on_connection_status;
|
OnConnectionStatus on_connection_status;
|
||||||
NetStatusReport net_status_report;
|
NetStatusReport net_status_report;
|
||||||
|
|
||||||
|
const char *user_id;
|
||||||
void *user_data;
|
void *user_data;
|
||||||
} PeerConnectionParams;
|
} PeerConnectionParams;
|
||||||
|
|
||||||
@@ -88,7 +91,7 @@ class PeerConnection {
|
|||||||
~PeerConnection();
|
~PeerConnection();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int Init(PeerConnectionParams params, const std::string &user_id);
|
int Init(PeerConnectionParams params);
|
||||||
|
|
||||||
int Create(const std::string &transmission_id = "",
|
int Create(const std::string &transmission_id = "",
|
||||||
const std::string &password = "");
|
const std::string &password = "");
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ PeerPtr *CreatePeer(const Params *params) {
|
|||||||
peer_ptr->pc_params.on_signal_status = params->on_signal_status;
|
peer_ptr->pc_params.on_signal_status = params->on_signal_status;
|
||||||
peer_ptr->pc_params.on_connection_status = params->on_connection_status;
|
peer_ptr->pc_params.on_connection_status = params->on_connection_status;
|
||||||
peer_ptr->pc_params.net_status_report = params->net_status_report;
|
peer_ptr->pc_params.net_status_report = params->net_status_report;
|
||||||
|
|
||||||
|
peer_ptr->pc_params.user_id = params->user_id;
|
||||||
peer_ptr->pc_params.user_data = params->user_data;
|
peer_ptr->pc_params.user_data = params->user_data;
|
||||||
|
|
||||||
return peer_ptr;
|
return peer_ptr;
|
||||||
@@ -51,13 +53,13 @@ void DestroyPeer(PeerPtr **peer_ptr) {
|
|||||||
*peer_ptr = nullptr;
|
*peer_ptr = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Init(PeerPtr *peer_ptr, const char *user_id) {
|
int Init(PeerPtr *peer_ptr) {
|
||||||
if (!peer_ptr || !peer_ptr->peer_connection) {
|
if (!peer_ptr || !peer_ptr->peer_connection) {
|
||||||
LOG_ERROR("Peer connection not created");
|
LOG_ERROR("Peer connection not created");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
peer_ptr->peer_connection->Init(peer_ptr->pc_params, user_id);
|
peer_ptr->peer_connection->Init(peer_ptr->pc_params);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user