mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
Set data receive interface for test
This commit is contained in:
@@ -12,8 +12,7 @@ extern "C" {
|
|||||||
|
|
||||||
typedef struct Peer PeerPtr;
|
typedef struct Peer PeerPtr;
|
||||||
|
|
||||||
typedef void (*OnReceiveBuffer)(unsigned char*, size_t, const char*,
|
typedef void (*OnReceiveBuffer)(const char*, size_t, const char*, size_t);
|
||||||
const size_t);
|
|
||||||
|
|
||||||
typedef void (*NetStatusReport)(const unsigned short, const unsigned short);
|
typedef void (*NetStatusReport)(const unsigned short, const unsigned short);
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,8 @@
|
|||||||
|
|
||||||
using nlohmann::json;
|
using nlohmann::json;
|
||||||
|
|
||||||
PeerConnection::PeerConnection() {}
|
PeerConnection::PeerConnection(OnReceiveBuffer on_receive_buffer)
|
||||||
|
: on_receive_buffer_(on_receive_buffer) {}
|
||||||
|
|
||||||
PeerConnection::~PeerConnection() {}
|
PeerConnection::~PeerConnection() {}
|
||||||
|
|
||||||
@@ -36,9 +37,9 @@ int PeerConnection::Init(PeerConnectionParams params,
|
|||||||
|
|
||||||
on_receive_ws_msg_ = [this](const std::string &msg) { ProcessSignal(msg); };
|
on_receive_ws_msg_ = [this](const std::string &msg) { ProcessSignal(msg); };
|
||||||
|
|
||||||
on_receive_ice_msg_ = [this](const char *data, size_t size) {
|
on_receive_ice_msg_ = [this](const char *data, size_t size,
|
||||||
std::string msg(data, size);
|
const char *user_id, size_t user_id_size) {
|
||||||
LOG_INFO("Receive data: [{}]", msg.c_str());
|
on_receive_buffer_(data, size, user_id, user_id_size);
|
||||||
};
|
};
|
||||||
|
|
||||||
ws_transport_ = new WsTransmission(on_receive_ws_msg_);
|
ws_transport_ = new WsTransmission(on_receive_ws_msg_);
|
||||||
@@ -187,7 +188,6 @@ void PeerConnection::ProcessSignal(const std::string &signal) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
// ice_transmission_->OnReceiveMessage(msg);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
enum SignalStatus { Connecting = 0, Connected, Closed };
|
enum SignalStatus { Connecting = 0, Connected, Closed };
|
||||||
|
|
||||||
typedef void (*OnReceiveBuffer)(unsigned char *, size_t, const char *,
|
typedef void (*OnReceiveBuffer)(const char *, size_t, const char *,
|
||||||
const size_t);
|
const size_t);
|
||||||
|
|
||||||
typedef void (*NetStatusReport)(const unsigned short, const unsigned short);
|
typedef void (*NetStatusReport)(const unsigned short, const unsigned short);
|
||||||
@@ -22,7 +22,7 @@ typedef struct {
|
|||||||
|
|
||||||
class PeerConnection {
|
class PeerConnection {
|
||||||
public:
|
public:
|
||||||
PeerConnection();
|
PeerConnection(OnReceiveBuffer on_receive_buffer);
|
||||||
~PeerConnection();
|
~PeerConnection();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@@ -59,12 +59,15 @@ class PeerConnection {
|
|||||||
IceTransmission *ice_transmission_ = nullptr;
|
IceTransmission *ice_transmission_ = nullptr;
|
||||||
std::map<std::string, IceTransmission *> ice_transmission_list_;
|
std::map<std::string, IceTransmission *> ice_transmission_list_;
|
||||||
std::function<void(const std::string &)> on_receive_ws_msg_ = nullptr;
|
std::function<void(const std::string &)> on_receive_ws_msg_ = nullptr;
|
||||||
std::function<void(const char *, size_t)> on_receive_ice_msg_ = nullptr;
|
std::function<void(const char *, size_t, const char *, size_t)>
|
||||||
|
on_receive_ice_msg_ = nullptr;
|
||||||
unsigned int ws_connection_id_ = 0;
|
unsigned int ws_connection_id_ = 0;
|
||||||
std::string user_id_ = "";
|
std::string user_id_ = "";
|
||||||
std::string transmission_id_ = "";
|
std::string transmission_id_ = "";
|
||||||
std::vector<std::string> user_id_list_;
|
std::vector<std::string> user_id_list_;
|
||||||
SignalStatus signal_status_ = SignalStatus::Closed;
|
SignalStatus signal_status_ = SignalStatus::Closed;
|
||||||
|
|
||||||
|
OnReceiveBuffer on_receive_buffer_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -14,7 +14,7 @@ static PeerConnection *peer_connection;
|
|||||||
|
|
||||||
PeerPtr *CreatePeer(const Params *params) {
|
PeerPtr *CreatePeer(const Params *params) {
|
||||||
PeerPtr *peer_ptr = new PeerPtr;
|
PeerPtr *peer_ptr = new PeerPtr;
|
||||||
peer_ptr->peer_connection = new PeerConnection();
|
peer_ptr->peer_connection = new PeerConnection(params->on_receive_buffer);
|
||||||
peer_ptr->pc_params.cfg_path = params->cfg_path;
|
peer_ptr->pc_params.cfg_path = params->cfg_path;
|
||||||
peer_ptr->pc_params.on_receive_buffer = params->on_receive_buffer;
|
peer_ptr->pc_params.on_receive_buffer = params->on_receive_buffer;
|
||||||
peer_ptr->pc_params.net_status_report = params->net_status_report;
|
peer_ptr->pc_params.net_status_report = params->net_status_report;
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ const std::vector<std::string> ice_status = {
|
|||||||
IceTransmission::IceTransmission(
|
IceTransmission::IceTransmission(
|
||||||
bool offer_peer, std::string &transmission_id, std::string &user_id,
|
bool offer_peer, std::string &transmission_id, std::string &user_id,
|
||||||
std::string &remote_user_id, WsTransmission *ice_ws_transmission,
|
std::string &remote_user_id, WsTransmission *ice_ws_transmission,
|
||||||
std::function<void(const char *, size_t)> on_receive_ice_msg)
|
std::function<void(const char *, size_t, const char *, size_t)>
|
||||||
|
on_receive_ice_msg)
|
||||||
: offer_peer_(offer_peer),
|
: offer_peer_(offer_peer),
|
||||||
transmission_id_(transmission_id),
|
transmission_id_(transmission_id),
|
||||||
user_id_(user_id),
|
user_id_(user_id),
|
||||||
@@ -69,10 +70,14 @@ int IceTransmission::InitIceTransmission(std::string &ip, int port) {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
[](juice_agent_t *agent, const char *data, size_t size, void *user_ptr) {
|
[](juice_agent_t *agent, const char *data, size_t size, void *user_ptr) {
|
||||||
if (user_ptr &&
|
if (user_ptr) {
|
||||||
static_cast<IceTransmission *>(user_ptr)->on_receive_ice_msg_cb_) {
|
IceTransmission *ice_transmission_obj =
|
||||||
static_cast<IceTransmission *>(user_ptr)->on_receive_ice_msg_cb_(
|
static_cast<IceTransmission *>(user_ptr);
|
||||||
data, size);
|
if (ice_transmission_obj->on_receive_ice_msg_cb_) {
|
||||||
|
ice_transmission_obj->on_receive_ice_msg_cb_(
|
||||||
|
data, size, ice_transmission_obj->remote_user_id_.data(),
|
||||||
|
ice_transmission_obj->remote_user_id_.size());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
this);
|
this);
|
||||||
|
|||||||
@@ -9,10 +9,11 @@
|
|||||||
|
|
||||||
class IceTransmission {
|
class IceTransmission {
|
||||||
public:
|
public:
|
||||||
IceTransmission(bool offer_peer, std::string &transmission_id,
|
IceTransmission(
|
||||||
std::string &user_id, std::string &remote_user_id,
|
bool offer_peer, std::string &transmission_id, std::string &user_id,
|
||||||
WsTransmission *ice_ws_transmission,
|
std::string &remote_user_id, WsTransmission *ice_ws_transmission,
|
||||||
std::function<void(const char *, size_t)> on_receive_ice_msg);
|
std::function<void(const char *, size_t, const char *, size_t)>
|
||||||
|
on_receive_ice_msg);
|
||||||
|
|
||||||
~IceTransmission();
|
~IceTransmission();
|
||||||
|
|
||||||
@@ -48,7 +49,8 @@ class IceTransmission {
|
|||||||
IceAgent *ice_agent_ = nullptr;
|
IceAgent *ice_agent_ = nullptr;
|
||||||
WsTransmission *ice_ws_transport_ = nullptr;
|
WsTransmission *ice_ws_transport_ = nullptr;
|
||||||
CongestionControl *congestion_control_ = nullptr;
|
CongestionControl *congestion_control_ = nullptr;
|
||||||
std::function<void(const char *, size_t)> on_receive_ice_msg_cb_ = nullptr;
|
std::function<void(const char *, size_t, const char *, size_t)>
|
||||||
|
on_receive_ice_msg_cb_ = nullptr;
|
||||||
std::string local_sdp_;
|
std::string local_sdp_;
|
||||||
std::string remote_sdp_;
|
std::string remote_sdp_;
|
||||||
std::string local_candidates_;
|
std::string local_candidates_;
|
||||||
|
|||||||
@@ -2,9 +2,18 @@
|
|||||||
|
|
||||||
#include "x.h"
|
#include "x.h"
|
||||||
|
|
||||||
|
void GuestReceiveBuffer(const char* data, size_t size, const char* user_id,
|
||||||
|
size_t user_id_size) {
|
||||||
|
std::string msg(data, size);
|
||||||
|
std::string user(user_id, user_id_size);
|
||||||
|
|
||||||
|
std::cout << "Receive: [" << user << "] " << msg << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
Params params;
|
Params params;
|
||||||
params.cfg_path = "../../../../config/config.ini";
|
params.cfg_path = "../../../../config/config.ini";
|
||||||
|
params.on_receive_buffer = GuestReceiveBuffer;
|
||||||
|
|
||||||
std::string transmission_id = "000000";
|
std::string transmission_id = "000000";
|
||||||
std::string user_id = argv[1];
|
std::string user_id = argv[1];
|
||||||
@@ -14,12 +23,12 @@ int main(int argc, char** argv) {
|
|||||||
PeerPtr* peer = CreatePeer(¶ms);
|
PeerPtr* peer = CreatePeer(¶ms);
|
||||||
JoinConnection(peer, transmission_id.c_str(), user_id.c_str());
|
JoinConnection(peer, transmission_id.c_str(), user_id.c_str());
|
||||||
|
|
||||||
std::string msg = "[" + user_id + "] Offer peer";
|
std::string msg = "Hello world";
|
||||||
|
|
||||||
int i = 100;
|
int i = 100;
|
||||||
while (i--) {
|
while (i--) {
|
||||||
getchar();
|
getchar();
|
||||||
std::cout << "Send data: [" << msg << "]" << std::endl;
|
std::cout << "Send msg: " << msg << std::endl;
|
||||||
SendData(peer, msg.data(), msg.size());
|
SendData(peer, msg.data(), msg.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,21 +2,30 @@
|
|||||||
|
|
||||||
#include "x.h"
|
#include "x.h"
|
||||||
|
|
||||||
|
void HostReceiveBuffer(const char* data, size_t size, const char* user_id,
|
||||||
|
size_t user_id_size) {
|
||||||
|
std::string msg(data, size);
|
||||||
|
std::string user(user_id, user_id_size);
|
||||||
|
|
||||||
|
std::cout << "Receive: [" << user << "] " << msg << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
Params params;
|
Params params;
|
||||||
params.cfg_path = "../../../../config/config.ini";
|
params.cfg_path = "../../../../config/config.ini";
|
||||||
|
params.on_receive_buffer = HostReceiveBuffer;
|
||||||
|
|
||||||
std::string transmission_id = "000000";
|
std::string transmission_id = "000000";
|
||||||
std::string user_id = argv[1];
|
std::string user_id = argv[1];
|
||||||
PeerPtr* peer = CreatePeer(¶ms);
|
PeerPtr* peer = CreatePeer(¶ms);
|
||||||
CreateConnection(peer, transmission_id.c_str(), user_id.c_str());
|
CreateConnection(peer, transmission_id.c_str(), user_id.c_str());
|
||||||
|
|
||||||
std::string msg = "[" + user_id + "] Answer peer";
|
std::string msg = "Hello world";
|
||||||
|
|
||||||
int i = 100;
|
int i = 100;
|
||||||
while (i--) {
|
while (i--) {
|
||||||
getchar();
|
getchar();
|
||||||
std::cout << "Send data: [" << msg << "]" << std::endl;
|
std::cout << "Send msg: " << msg << std::endl;
|
||||||
SendData(peer, msg.data(), msg.size());
|
SendData(peer, msg.data(), msg.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user