mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 12:15: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*,
|
||||
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,
|
||||
void*);
|
||||
@@ -114,6 +114,8 @@ typedef struct {
|
||||
OnSignalStatus on_signal_status;
|
||||
OnConnectionStatus on_connection_status;
|
||||
NetStatusReport net_status_report;
|
||||
|
||||
const char* user_id;
|
||||
void* user_data;
|
||||
} Params;
|
||||
|
||||
@@ -121,7 +123,7 @@ DLLAPI PeerPtr* CreatePeer(const Params* params);
|
||||
|
||||
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,
|
||||
const char* password);
|
||||
|
||||
@@ -13,14 +13,13 @@ PeerConnection::PeerConnection() {}
|
||||
|
||||
PeerConnection::~PeerConnection() { user_data_ = nullptr; }
|
||||
|
||||
int PeerConnection::Init(PeerConnectionParams params,
|
||||
const std::string &user_id) {
|
||||
int PeerConnection::Init(PeerConnectionParams params) {
|
||||
if (inited_) {
|
||||
LOG_INFO("Peer already inited");
|
||||
return 0;
|
||||
}
|
||||
// Todo: checkout user_id unique or not
|
||||
user_id_ = user_id;
|
||||
user_id_ = params.user_id;
|
||||
|
||||
if (params.use_cfg_file) {
|
||||
INIReader reader(params.cfg_path);
|
||||
@@ -103,7 +102,8 @@ int PeerConnection::Init(PeerConnectionParams params,
|
||||
if (WsStatus::WsOpening == ws_status) {
|
||||
ws_status_ = WsStatus::WsOpening;
|
||||
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) {
|
||||
ws_status_ = WsStatus::WsOpened;
|
||||
LOG_INFO("Login to signal server");
|
||||
@@ -111,19 +111,23 @@ int PeerConnection::Init(PeerConnectionParams params,
|
||||
} else if (WsStatus::WsFailed == ws_status) {
|
||||
ws_status_ = WsStatus::WsFailed;
|
||||
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) {
|
||||
ws_status_ = WsStatus::WsClosed;
|
||||
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) {
|
||||
ws_status_ = WsStatus::WsReconnecting;
|
||||
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) {
|
||||
ws_status_ = WsStatus::WsServerClosed;
|
||||
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 {
|
||||
// } while (SignalStatus::SignalConnected != GetSignalStatus());
|
||||
|
||||
LOG_INFO("[{}] Init finish", user_id);
|
||||
LOG_INFO("[{}] Init finish", user_id_);
|
||||
|
||||
inited_ = true;
|
||||
return 0;
|
||||
@@ -414,7 +418,8 @@ void PeerConnection::ProcessSignal(const std::string &signal) {
|
||||
user_id_.data(), user_id_.size(), user_data_);
|
||||
LOG_INFO("Login success with id [{}]", user_id_);
|
||||
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") {
|
||||
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,
|
||||
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,
|
||||
void *);
|
||||
@@ -60,6 +61,8 @@ typedef struct {
|
||||
OnSignalStatus on_signal_status;
|
||||
OnConnectionStatus on_connection_status;
|
||||
NetStatusReport net_status_report;
|
||||
|
||||
const char *user_id;
|
||||
void *user_data;
|
||||
} PeerConnectionParams;
|
||||
|
||||
@@ -88,7 +91,7 @@ class PeerConnection {
|
||||
~PeerConnection();
|
||||
|
||||
public:
|
||||
int Init(PeerConnectionParams params, const std::string &user_id);
|
||||
int Init(PeerConnectionParams params);
|
||||
|
||||
int Create(const std::string &transmission_id = "",
|
||||
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_connection_status = params->on_connection_status;
|
||||
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;
|
||||
|
||||
return peer_ptr;
|
||||
@@ -51,13 +53,13 @@ void DestroyPeer(PeerPtr **peer_ptr) {
|
||||
*peer_ptr = nullptr;
|
||||
}
|
||||
|
||||
int Init(PeerPtr *peer_ptr, const char *user_id) {
|
||||
int Init(PeerPtr *peer_ptr) {
|
||||
if (!peer_ptr || !peer_ptr->peer_connection) {
|
||||
LOG_ERROR("Peer connection not created");
|
||||
return -1;
|
||||
}
|
||||
|
||||
peer_ptr->peer_connection->Init(peer_ptr->pc_params, user_id);
|
||||
peer_ptr->peer_connection->Init(peer_ptr->pc_params);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user