mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 12:15: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 void (*OnReceiveBuffer)(unsigned char*, size_t, const char*,
|
||||
const size_t);
|
||||
typedef void (*OnReceiveBuffer)(const char*, size_t, const char*, size_t);
|
||||
|
||||
typedef void (*NetStatusReport)(const unsigned short, const unsigned short);
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
|
||||
using nlohmann::json;
|
||||
|
||||
PeerConnection::PeerConnection() {}
|
||||
PeerConnection::PeerConnection(OnReceiveBuffer on_receive_buffer)
|
||||
: on_receive_buffer_(on_receive_buffer) {}
|
||||
|
||||
PeerConnection::~PeerConnection() {}
|
||||
|
||||
@@ -36,9 +37,9 @@ int PeerConnection::Init(PeerConnectionParams params,
|
||||
|
||||
on_receive_ws_msg_ = [this](const std::string &msg) { ProcessSignal(msg); };
|
||||
|
||||
on_receive_ice_msg_ = [this](const char *data, size_t size) {
|
||||
std::string msg(data, size);
|
||||
LOG_INFO("Receive data: [{}]", msg.c_str());
|
||||
on_receive_ice_msg_ = [this](const char *data, size_t size,
|
||||
const char *user_id, size_t user_id_size) {
|
||||
on_receive_buffer_(data, size, user_id, user_id_size);
|
||||
};
|
||||
|
||||
ws_transport_ = new WsTransmission(on_receive_ws_msg_);
|
||||
@@ -187,7 +188,6 @@ void PeerConnection::ProcessSignal(const std::string &signal) {
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
// ice_transmission_->OnReceiveMessage(msg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
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);
|
||||
|
||||
typedef void (*NetStatusReport)(const unsigned short, const unsigned short);
|
||||
@@ -22,7 +22,7 @@ typedef struct {
|
||||
|
||||
class PeerConnection {
|
||||
public:
|
||||
PeerConnection();
|
||||
PeerConnection(OnReceiveBuffer on_receive_buffer);
|
||||
~PeerConnection();
|
||||
|
||||
public:
|
||||
@@ -59,12 +59,15 @@ class PeerConnection {
|
||||
IceTransmission *ice_transmission_ = nullptr;
|
||||
std::map<std::string, IceTransmission *> ice_transmission_list_;
|
||||
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;
|
||||
std::string user_id_ = "";
|
||||
std::string transmission_id_ = "";
|
||||
std::vector<std::string> user_id_list_;
|
||||
SignalStatus signal_status_ = SignalStatus::Closed;
|
||||
|
||||
OnReceiveBuffer on_receive_buffer_;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -14,7 +14,7 @@ static PeerConnection *peer_connection;
|
||||
|
||||
PeerPtr *CreatePeer(const Params *params) {
|
||||
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.on_receive_buffer = params->on_receive_buffer;
|
||||
peer_ptr->pc_params.net_status_report = params->net_status_report;
|
||||
|
||||
@@ -17,7 +17,8 @@ const std::vector<std::string> ice_status = {
|
||||
IceTransmission::IceTransmission(
|
||||
bool offer_peer, std::string &transmission_id, std::string &user_id,
|
||||
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),
|
||||
transmission_id_(transmission_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) {
|
||||
if (user_ptr &&
|
||||
static_cast<IceTransmission *>(user_ptr)->on_receive_ice_msg_cb_) {
|
||||
static_cast<IceTransmission *>(user_ptr)->on_receive_ice_msg_cb_(
|
||||
data, size);
|
||||
if (user_ptr) {
|
||||
IceTransmission *ice_transmission_obj =
|
||||
static_cast<IceTransmission *>(user_ptr);
|
||||
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);
|
||||
|
||||
@@ -9,10 +9,11 @@
|
||||
|
||||
class IceTransmission {
|
||||
public:
|
||||
IceTransmission(bool offer_peer, std::string &transmission_id,
|
||||
std::string &user_id, std::string &remote_user_id,
|
||||
WsTransmission *ice_ws_transmission,
|
||||
std::function<void(const char *, size_t)> on_receive_ice_msg);
|
||||
IceTransmission(
|
||||
bool offer_peer, std::string &transmission_id, std::string &user_id,
|
||||
std::string &remote_user_id, WsTransmission *ice_ws_transmission,
|
||||
std::function<void(const char *, size_t, const char *, size_t)>
|
||||
on_receive_ice_msg);
|
||||
|
||||
~IceTransmission();
|
||||
|
||||
@@ -48,7 +49,8 @@ class IceTransmission {
|
||||
IceAgent *ice_agent_ = nullptr;
|
||||
WsTransmission *ice_ws_transport_ = 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 remote_sdp_;
|
||||
std::string local_candidates_;
|
||||
|
||||
@@ -2,9 +2,18 @@
|
||||
|
||||
#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) {
|
||||
Params params;
|
||||
params.cfg_path = "../../../../config/config.ini";
|
||||
params.on_receive_buffer = GuestReceiveBuffer;
|
||||
|
||||
std::string transmission_id = "000000";
|
||||
std::string user_id = argv[1];
|
||||
@@ -14,12 +23,12 @@ int main(int argc, char** argv) {
|
||||
PeerPtr* peer = CreatePeer(¶ms);
|
||||
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;
|
||||
while (i--) {
|
||||
getchar();
|
||||
std::cout << "Send data: [" << msg << "]" << std::endl;
|
||||
std::cout << "Send msg: " << msg << std::endl;
|
||||
SendData(peer, msg.data(), msg.size());
|
||||
}
|
||||
|
||||
|
||||
@@ -2,21 +2,30 @@
|
||||
|
||||
#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) {
|
||||
Params params;
|
||||
params.cfg_path = "../../../../config/config.ini";
|
||||
params.on_receive_buffer = HostReceiveBuffer;
|
||||
|
||||
std::string transmission_id = "000000";
|
||||
std::string user_id = argv[1];
|
||||
PeerPtr* peer = CreatePeer(¶ms);
|
||||
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;
|
||||
while (i--) {
|
||||
getchar();
|
||||
std::cout << "Send data: [" << msg << "]" << std::endl;
|
||||
std::cout << "Send msg: " << msg << std::endl;
|
||||
SendData(peer, msg.data(), msg.size());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user